[RESOLU] Modifier les balises meta après que la page soit créée

Avatar du membre
Mammouth du PHP | 1564 Messages

27 janv. 2021, 12:32

Je souhaite modifier certaines valeur dans mon header et même rajouter des balises, comme celles de Facebook pour le partage.

Le problème c'est que j'ai créé une système de page en PHP, j'inclus d'abords les Scripts JS/CSS/Meta title, ensuite la page, puis le footer + des scripts dans le footer si il y a besoin.

Mais en faisant comme ça, si ma page inclue a le titre qui est dynamique, je l'ai dans l'os.

Ya til moyen de modifier/rajouter des balises, après la création de la page et que ce soit bien prix en compte par facebook et les moteurs de recherches pour le titre et description ?

Mammouth du PHP | 2703 Messages

27 janv. 2021, 12:34

en javascript, c'est possible, mais je doute que tous les robots exécutent le javascript.
il vaut donc mieux revoir le système de page pour pouvoir modifier les header de chaque page.

Avatar du membre
Mammouth du PHP | 1564 Messages

27 janv. 2021, 13:22

merci pour ta réponse mais javascript c'est le problème avec les robots, il faut que ce soit en dur déjà dans la code

J'ai pensé en enregistrant la page dans une variable puis de faire un

Code : Tout sélectionner

echo str_replace('[meta]','mes balises à rajouter, ici',$contenu);

Avatar du membre
Mammouth du PHP | 1564 Messages

27 janv. 2021, 13:42

J'y étais presque, la fonction ob_start() le fait: https://www.php.net/manual/fr/function. ... t-examples

Avatar du membre
Mammouth du PHP | 1564 Messages

27 janv. 2021, 14:20

J'ai finalement adapté l'exemple de PHP, mais je suis novice avec ob_start(), quelqu'un pourrait confirmer mon code svp ?
<?php



//j'inclus mon header
ob_start();
?>
<!doctype html>
<html>
	<head>
	<!--[META]-->
	</head>
<body>
<?php
$header = ob_get_contents();
ob_clean();//pour ne pas afficher le code à l'écran




//j'inclus la page
ob_start();
$balises='<meta facebook et autres>';
?>
<p>C'est comme comparer des carottes et des pommes de terre.</p>
<?php
$contenu = ob_get_contents();
ob_clean();//pour ne pas afficher le code à l'écran




//j'inclus le footer
ob_start();
?>
</body>
</html>
<?php
$footer = ob_get_contents();
ob_clean();//pour ne pas afficher le code à l'écran



//on affiche le résultat final on remplçant le code "<!--[META]-->", par la variable $balises
echo str_replace("<!--[META]-->", $balises, $header).$contenu.$footer;
?>