Page 1 sur 1

REGEX et langage d'un site

Posté : 29 mai 2007, 23:13
par logikstik
Bonjour à tous !

Bon je viens vers vous pour vous faire tester quelques regex que j'ai fait, afin d'être sûr qu'elle soit compréhensible, j'aimerai que vous me dites ce que vous comprenez en la lisant.

Elle permettent de trouver la langue d'un site, je pense qu'il existe d'autre possibilité mais je n'est que trouver celle-ci (pour le moment).

La variable $codeHTML est le code HTML du site récupérer avec file_get_contents().

Voici les regex :
<?php

preg_match_all( '/<html xmlns="([^"]+)"([[:blank:]]*)xml:lang="([^"]+){1,2}"([[:blank:]]*)lang="([^"]+){1,2}">+/', $codeHTML, $language )

preg_match_all( '/<html xmlns="([^"]+)"([[:blank:]]*)xml:lang="([^"]+){1,5}"([[:blank:]]*)lang="([^"]+){1,5}">+/', $codeHTML, $language )

preg_match_all( '/<meta name="(lang|language)"([[:blank:]]*)content="([^"]+){1,2}"([[:blank:]]*[\/?])>+/', $codeHTML, $language )

preg_match_all( '/<meta http-equiv="(Content-language|content-language|language|lang)"([[:blank:]]*)content="([^"]+){1,2}"([[:blank:]]*[\/?])>+/', $codeHTML, $language )

?>
Le seul souci qui se présente à moi est que les balises HTML présente ci-dessous dans les regex, peuvent être dans tous les sens.

Exemple :
<link rel="stylesheet" href="style.css" type="text/css">

peut très bien s'écrire de la suivante aussi

<link rel="stylesheet" type="text/css" href="style.css">

ou encore

<link type="text/css" href="tstyle.css" rel="stylesheet">

Plusieurs façon sont possible. Les balises ne sont que pour monter les possibilité, ce n'est pas ce que je recherche avec les regex.

Voilà mon vrai problème, mais dans un premier temps savoir si mes regex sont corrects car je n'est pas eu le temps de tester encore, désolé.

Je vous remercie tous d'avance pour votre aide et vive PHPFrance ! :D

Posté : 29 mai 2007, 23:27
par Cyrano

Posté : 30 mai 2007, 09:20
par titerm
Une autre possibilité est d'utiliser l'extension DOM. Vu ce que tu veux faire, ce sera bien plus adapté que les regex.

Je te renvoie vers un autre thread recent comportant quelques exemple d'utilisation du DOM.

http://www.phpfrance.com/forums/voir_sujet-29941.php

Posté : 30 mai 2007, 13:45
par logikstik
Bon, j'ai essaye les DOM mais sans succès, enfin, j'ai passé la matinée dessus mais je n'arrive pas à faire marcher correctement le tout. Bref, après la langue du site je voulais en fait récupérer via PHP le flux RSS que propose les sites, mais je me suis rappelé que la langue du site se trouve dans les fichiers RSS, donc pour pas m'embêter, je prendrai l'information nécessaire dedans, mais là pareil, apres quelque recherche, je ne trouve pas comment faire pour récupérer un flux RSS d'un site autre que par une REGEX ou DOM, si solution autre il y a bien entendu. Une idée ?

Posté : 05 juin 2007, 03:22
par elvex
DOM, c'est bien.

(c'était l'instant "une opinion constructive, pour quoi faire ?")

Bref, surtout pour du RSS, vu que RSS, c'est du XML, et que la seule et unique fonction de DOM, c'est de gérer du XML.
Si tu prends quelques instants pour te plonger dans le manuel PHP, tu en tireras un bénéfice bien plus grand qu'à tenter de bidouiller des regex...