Extraire les balises méta avec get_all_meta_tags()

get_all_meta_tags est une fonction similaire à la fonction get_meta_tags fournie avec PHP. Elle permet d'extraire les balises méta de type name mais aussi - contrairement � get_meta_tags - celles de type http-equiv. Elle peut en outre retourner des attributs complémentaires tels que lang ou scheme qui sont omis par get_meta_tags.

La fonction get_all_meta_tags()

mixed get_all_meta_tags ( string filename [, array options] )

get_all_meta_tags ouvre le fichier filename et en extrait toutes les balises méta trouvées qu'elles soient de type name ou http-equiv. Le fichier peut être un fichier local ou une URL.

get_all_meta_tags retourne la valeur FALSE si une erreur survient lors du chargement du fichier, un tableau vide si aucune balise méta n'est préente et un tableau associatif dans le cas où au moins une balise est trouvée (voir l'exemple 1 pour le format retourné). Les caractères spéciaux présents dans la valeur seront replacés par un souligné ("_"), et le reste est converti en minuscule. Si deux balises méta possèdent le même nom, seul la dernière sera retournée.

Le paramètre optionnel options permet de jouer sur les informations retournées, il comprend les paramètres suivants:

  • use_include_path : en donnant sa valeur à TRUE, get_all_meta_tags recherchera aussi le fichier dans l'include_path,
  • all_attributes : en donnant sa valeur à TRUE, get_all_meta_tags retournera le contenu de la balise méta sous la forme d'un tableau associatif dont les clés sont les noms des attributs trouvés,
  • only_property : cette option vous permet de filtrer les balises et de ne retourner que les balises de type name ou http-equiv.

Exemple 1. Récupération simple des balises trouvées dans une page

Cet exemple montre comment récupérer les valeurs associées des balises méta trouvées dans une page (attribut content).

$all_meta_tags = get_all_meta_tags('http://www.w3.org/');
// print_r($all_meta_tags) affiche alors le résultat suivant :
// Array
// (
//     [http-equiv] => Array
//         (
//             [content-type] => text/html; charset=utf-8
//         )
//
//     [name] => Array
//         (
//             [generator] => HTML Tidy for Mac OS X […]
//             [keywords] => W3C, World Wide Web, Web, WWW, […]
//             [description] => W3C’s nearly 400 member […]
//         )
//
// )

Exemple 2. Récupération complète des balises trouvées dans une page

Cet exemple montre comment récupérer les valeurs associées des balises méta trouvées dans une page en prenant en compte tous les attributs de ces balises.

$all_meta_tags = get_all_meta_tags(
    'http://www.blog-and-blues.org/',
    array('all_attributes' => TRUE)
);
// par exemple, print_r($all_meta_tags['name']['dc_language']) affichera
// Array
// (
//     [scheme] => RFC1766
//     [content] => fr
// )
// au lieu d'un simple 'fr' si l'option "all_attributes" avait été égale à FALSE

Exemple 3. Filtre sur une propriété

Il est possible de filtrer sur une propriété (name ou http-equiv) via l'option only_property. L'exemple suivant permet de reproduire le résultat retourné par la fonction get_meta_tags de PHP.

$meta_tags = get_all_meta_tags(
    'http://www.w3.org/',
    array('only_property' => 'name')
);
// print_r($meta_tags) affiche alors le résultat suivant :
// Array
// (
//     [generator] => HTML Tidy for Mac OS X […]
//     [keywords] => W3C, World Wide Web, Web, WWW, […]
//     [description] => W3C’s nearly 400 member […]
// )

Code source

Télécharger le fichier : get_all_meta_tags.php.

Posté le mardi 30 novembre 2004 dans .

Commentaires

Il n'y a aucun commentaire ; soyez le premier à déposer le vôtre.

Ajouter un commentaire

Il n'est plus possible de réagir à cette entrée directement mais si vous pensez que votre intervention peut être intéressante, envoyez-moi votre commentaire, je l'ajouterai ici en votre nom.