====== Script PHP pour récupérer les metatags d'une page HTML ====== Voici un script PHP qui récupère les metatags présents sur une page HTML et qui les stocks dans un tableau.\\ Il existe une fonction toute prête //get_meta_tags//, mais celle-ci ne permet que de récupérer les //meta// de type //name//. ===== Pré-requis / Difficultés ===== Les fonctions suivantes fonctionnent avec PHP 4, 5 et 7. La seconde fonction utilise les **regex**, un cours viendra sur la conception des **regex** bientôt. {{howhard>3}} ===== Première méthode : get_meta_tags ===== Comme vu plus haut, la fonction **get_meta_tags** intégrée dans PHP permet de récupérer facilement les //meta// de type //name// d'une page HTML et les fournis sous forme de tableau. La commande est simple, pour l'exemple nous allons récupérer les meta-tags de la page d'accueil du site : Le script affichera les lignes suivantes : DokuWiki index,follow accueil ===== Seconde méthode : récupère toutes les balises meta ===== Pour les besoins d'un script PHP, j'avais besoin de récupérer le contenu des balises //opengraph//. J'ai donc utilisé la fonction suivante qui permet de récupérer l'ensemble des balises //meta// d'une page HTML.\\ Pour cela nous créons une fonction qui s'appelle //getMeta//. ]*? \b(?:name|property|http-equiv)\s*=\s* (?|"\s*([^"]*?)\s*"|\'\s*([^\']*?)\s*\'| ([^"\'>]*?)(?=\s*/?\s*>|\s\w+\s*=)) ) [^>]*?\bcontent\s*=\s* (?|"\s*([^"]*?)\s*"|\'\s*([^\']*?)\s*\'| ([^"\'>]*?)(?=\s*/?\s*>|\s\w+\s*=)) [^>]*> ~ix'; if(preg_match_all($pattern, $url, $out)) return array_combine($out[1], $out[2]); return array(); } // usage $page = file_get_contents('https://www1.zonewebmaster.eu'); if ($page !== false{ $tags = getMeta($page); // Appel la fonction } La fonction utilise un **regex** permettant de sélectionner toutes les balises //meta// (//name,property,http-equiv//), le **regex** est stocké dans la variable //$pattern//.\\ La fonction retourne un tableau vide s'il n'y a pas de //metatag// disponible sur la page HTML. Sinon tous les metatags sont stockés dans le tableau //$tags//.\\ La variable //$page// contient le code HTML de la page à lire. ===== Auteurs et sources ===== * Auteur : [[:user:montuy337513]] * Sources : [[https://www.php.net/manual/fr/|Guide officiel de PHP en français]] ===== Navigation ===== {{page>:navigation#astuces-tutoriels-php}} * [[:accueil|Accueil]] * [[:gestion-site-internet]] * [[:tutoriel-javascript]] * [[:tutoriel-html]] * [[:tutoriel-php-mysql]] * [[:tutoriel-referencement-seo]]