Rechercher : dans
Par :

PHP et preg_match_all

Dernière réponse le 10 mai 2005 à 13:59:43 bolbo, le 10 mai 2005 à 11:07:54 
 Signaler ce message aux modérateurs

Bonjour,

Je cherche à faire une expression régulière qui me permette de reconnaitre un champ SELECT.

Pour le moment, j'ai le code suivant :

$html = "<SELECT name=\"mois_naissance_emprunteur\" title=\"Mois\"><OPTION Value=\"0\">--</OPTION><OPTION Value=\"janvier\">janvier</OPTION><OPTION Value=\"fevrier\">fevrier</OPTION><OPTION Value=\"mars\">mars</OPTION><OPTION Value=\"avril\">avril</OPTION></SELECT>";
					
echo $html."<br><br>";
					
					


$motif="`(<(SELECT+)[^>]*>)(.*)(<\/\\2>)`";
preg_match_all ($motif, $html, $matches);

for ($i=0; $i< count($matches[0]); $i++) 
{
  echo 'total : ' . $matches[0][$i] . "\n<br>";
  echo 'partie 1 : ' . $matches[1][$i] . "\n<br>";
  echo 'partie 2 : ' . $matches[3][$i] . "\n<br>";
  echo 'partie 3 : ' . $matches[4][$i] . "\n\n<br>____<br>";
}


récupéré sur PHP.net.

Il reconnait bien le select lorsque tout est écrit sur une seule ligne, sans retour chariot ni rien. Dans ce cas, le résultat et correct.

Le problème apparait lorsque le select est sur plusieurs lignes avec indentation :
<SELECT name=\"mois_naissance_emprunteur\" title=\"Mois\">
            <OPTION Value=\"0\">--</OPTION>
            <OPTION Value=\"janvier\">janvier</OPTION>
            <OPTION Value=\"fevrier\">fevrier</OPTION>
            <OPTION Value=\"mars\">mars</OPTION>
            <OPTION Value=\"avril\">avril</OPTION>
</SELECT>
par exemple.

Y'a t'il un moyen de lui dire que la parentherse capturante (.*) peut contenir des retour chariot ?

Merci d'avance,

Bolbo

Meilleures réponses pour « PHP et preg_match_all » dans :
PHP - Les fichiers Voir La gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Bases de données Voir Php permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...

1

Nashouille, le 10 mai 2005 à 12:08:05

T'as essayé :
$motif="`(<(SELECT+)[^>]*>)
(.*)(<\/\\2>)`";
Y'a une grosse probabilité que ce ne soit pas ça mais bon... autrement tu peux tenter de trouver un "\n" mais il me semble avoir déjà esayé, sans succcès ^^

Répondre à Nashouille

2

 bolbo, le 10 mai 2005 à 13:59:43

Je viens d'essayer, mais ca ne marche pas .

Merci quand même

Répondre à bolbo
Collection CommentÇaMarche.net