2017-06-17 5 views
1

En essayant d'améliorer mon référencement, une façon de faire est d'inclure une balise de description qui contient une description du contenu de la page, cela peut être montré dans Google Résultats de la recherche. Le problème que j'ai est que le besoin d'être dans l'en-tête du site, mais je demande ma base de données dans le corps du site, je ne veux pas une méta description générique, je veux mettre à jour dynamiquement dépendant de la page actuelle. Mon site est un site de comparaison de caméras, donc par exemple je devrais passer le nom de la marque, le nom du modèle et quelques spécifications jusqu'à la meta ...PHP Buffer pour passer la description META et titre à l'en-tête du site

J'ai eu le même problème avec le tag que je veux ma page titres pour inclure le nom du produit, j'ai contourné le problème en utilisant un tampon, ce qui m'a permis de passer le nom du modèle au titre.

header.php:

<title>%TITLE%</title> 

compare.php

ob_start(); 
include_once 'includes/header.php'; 
$buffer_title=ob_get_contents(); 
buffer_title=str_replace("%TITLE%", "Specced | " . $brand['brand'] . " " . $model['model'] ,$buffer_title); 
echo $buffer_title; 
ob_end_clean(); 

En utilisant ce code, j'ai pu interroger le nom de la marque et le nom du modèle basé sur l'ID de page et de passer les détails des au titre ... Je pense que je peux faire la même chose avec la balise META Description. Je comprends qu'une balise META ne peut pas être dans le corps du site, donc ma question est, je voudrais être en mesure de transmettre les méta-détails et les détails du titre jusqu'à l'en-tête de la page en utilisant la méthode d'objet ci-dessus.

header.php:

<title>%TITLE%</title> 
<meta name="Description" content="%META%"> 

compare.php:

La question que je vais avoir avec ce code est qu'il comprend deux fois le fichier d'en-tête, vous pouvez le voir sur mon Site ici:

http://cameras.specced.co.uk/compare.php?compare_1=129

J'aimerais savoir comment passer bot h les détails du méta et du titre jusqu'à l'entête en utilisant la méthode ob_start. Thankyou

Répondre

0

Ceci est un problème de conception commun avec les scripts PHP qui fonctionnent avec un en-tête et un pied de page. Techniquement, vous devez d'abord rassembler les données afin de pouvoir les générer. Mais avec votre conception existante, vous démarrez d'abord la sortie (mise en mémoire tampon ou non), puis vous effectuez le traitement et vous réalisez que vous avez démarré la sortie trop tôt :)

Vous pouvez séparer la sortie du traitement, c'est-à-dire vous transformez le corps en un gabarit de corps et vous faites le traitement à l'avance. Pour cela, vous devez déclarer les variables de modèle que vous utilisez pour le titre et la description (à côté des variables que vous utilisez dans chaque modèle de corps spécifique, mais celles-ci peuvent varier davantage lorsque les variables d'en-tête sont réparties).

[processing] 

    | 
    | 
variables 
    | 
    \|/ 

    <header> 
    <body> 
    <footer> 

Si vous suivez cet ordre, vous n'avez pas besoin d'écrire votre propre recherche/recherche/code remplacer, vous pouvez simplement des variables de sortie au sein de vos modèles. Ce n'est qu'une question d'ordre d'exécution.

Dans un programme, les opérations de sortie viennent normalement en dernier (entrée -> traitement -> sortie; IPO).