Expréssions régulières PHp
maryooman
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Atropa Messages postés 1940 Date d'inscription Statut Membre Dernière intervention -
Atropa Messages postés 1940 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je me permets d'écrire car même avec une dizaine d'onglets ouverts (et lu) relatif aux expressions régulières, je n'arrive pas résoudre ce problème.
Je veux lire dans un fichier et garder des infos qui m'intéressent, pour les mettre dans un fichier xml.
Le problème est le suivant :
catégorie 1 : ATI - HD4850, 99-129
je souhaite extraire le "1". Voici le code, lecture du fichier compris
if (!$fichier = file($var_fichier)) { //ouvre le fichier et place chaque ligne dans une case du tableau $ficher
echo "Echec de l\'ouverture du fichier"; //si le ficher ne s'ouvre pas, arrêt du programme
exit();
}
else { //si le ficher s'ouvre, alors on le parcours
$taille = count($fichier);
for($i = 0; $i < $taille; $i++) {
echo $fichier[$i]; //l'affichage est juste
$tmp= preg_grep('#catégorie.:#', $fichier);
echo $tmp;
}
}
donc pour l'extraction j'utilise : preg_grep('#catégorie.:#', $fichier);
en suivant les tuto j'ai conclu que cette forme est la plus juste ..... mais ça ne fonctionne pas !!
Pour résumé : me mot extraire est entre "catégorie" et ":", je en vois pas ce que je peut faire d'autre.
peut être que je dois utiliser une autre fonction que preg_grep ??
Voilà merci d'avance
je me permets d'écrire car même avec une dizaine d'onglets ouverts (et lu) relatif aux expressions régulières, je n'arrive pas résoudre ce problème.
Je veux lire dans un fichier et garder des infos qui m'intéressent, pour les mettre dans un fichier xml.
Le problème est le suivant :
catégorie 1 : ATI - HD4850, 99-129
je souhaite extraire le "1". Voici le code, lecture du fichier compris
if (!$fichier = file($var_fichier)) { //ouvre le fichier et place chaque ligne dans une case du tableau $ficher
echo "Echec de l\'ouverture du fichier"; //si le ficher ne s'ouvre pas, arrêt du programme
exit();
}
else { //si le ficher s'ouvre, alors on le parcours
$taille = count($fichier);
for($i = 0; $i < $taille; $i++) {
echo $fichier[$i]; //l'affichage est juste
$tmp= preg_grep('#catégorie.:#', $fichier);
echo $tmp;
}
}
donc pour l'extraction j'utilise : preg_grep('#catégorie.:#', $fichier);
en suivant les tuto j'ai conclu que cette forme est la plus juste ..... mais ça ne fonctionne pas !!
Pour résumé : me mot extraire est entre "catégorie" et ":", je en vois pas ce que je peut faire d'autre.
peut être que je dois utiliser une autre fonction que preg_grep ??
Voilà merci d'avance
A voir également:
- Expréssions régulières PHp
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- [PHP] Expressions régulières - Forum PHP
4 réponses
Je ne suis pas une bête d'expression régulière, mais je t'apporte une autre solution :
Tu utilise la méthode substr() pour couper le chiffre s'il est toujours au même endroit ^^
Tu peux même couper tant que tu ne rencontre pas le : à partir du caractère 'e' à la fin de catégorie.
Enfin voilà c'est une idée au cas où ;)
Tu utilise la méthode substr() pour couper le chiffre s'il est toujours au même endroit ^^
Tu peux même couper tant que tu ne rencontre pas le : à partir du caractère 'e' à la fin de catégorie.
Enfin voilà c'est une idée au cas où ;)
malheureusement elle ne marche pas smocking bird, en plus preg_match retourne le nombre de fois ou la chaine a té trouvé, pas la chaine elle même ...
scriptiz, j'ai besoin d'utilisé les expression régulières car je dois aussi extraire d'autres infos :
catégorie 1 : ATI - HD4850, 99-129
le "1", le "ati, le "hd4850", le "99" et le "129"
si j'y arrive avec le "1" alors je comprendrai pour les autres
scriptiz, j'ai besoin d'utilisé les expression régulières car je dois aussi extraire d'autres infos :
catégorie 1 : ATI - HD4850, 99-129
le "1", le "ati, le "hd4850", le "99" et le "129"
si j'y arrive avec le "1" alors je comprendrai pour les autres