[PHP] regexs
Dernière réponse : dans Programmation
Bonjour tout le monde,
j'ai besoin d'utiliser des regexs mais je n'y arrive pas.
ma chaine :
Je veux récupérer la valeure '2 200' dans cet exemple.
voici mon code:
J'obtient :
quelqu'un peut t'il me dire d'ou viens l'erreur ?
j'ai besoin d'utiliser des regexs mais je n'y arrive pas.
ma chaine :
<b>Prix: </b></td><td class=cell>2 200 €</td>
Je veux récupérer la valeure '2 200' dans cet exemple.
voici mon code:
$prix = preg_match('#<b>Prix\: </b></td><td class=cell>(.+) €</td>#', $source, $prix);
echo '<br />Prix : '.$prix.'<br />';
J'obtient :
Citation :
prix : 0quelqu'un peut t'il me dire d'ou viens l'erreur ?
Autres pages sur : php regexs
Lassé par la pub ? Créez un compte
Mais si! personne ne lit la doc?
preg_match($pattern, $subject, $matches) renvoit true or false mais remplit le tableau $matches avec les concordances.
preg_match() analyse subject pour trouver l'expression qui correspond à pattern.
Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc.
preg_match($pattern, $subject, $matches) renvoit true or false mais remplit le tableau $matches avec les concordances.
Citation :
int preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] )preg_match() analyse subject pour trouver l'expression qui correspond à pattern.
Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc.
Citation :
int preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] )preg_match() analyse subject pour trouver l'expression qui correspond à pattern.
Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc.
donc dans mon code :
$prix = preg_match('#<td[^>]+>(.+)€#', $source, $prix);
echo '<br />Prix : '.$prix[1].'<br />';
Mais sa marche pas..
EDIT, je vien de trouver,
il fallait enlever le $prix = devant le preg_match
Donc j'obtient bien l'information mais sa ne marche pas sur certaines pages..
2Dpix a dit :
Donc j'obtient bien l'information mais sa ne marche pas sur certaines pages..Peut-être que ton pattern n'est pas valable pour toutes les pages.
D'on l'interet de faire:
if (preg_match($pattern,$source,$prix)) {
echo "le prix est ".$prix[1];
} else {
echo "Je ne trouve pas dans:<pre>".$source."</pre>";
}
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumUrl facebook regex php
- ForumPhp regex email
- ForumPhp regex ou autre s
- solutionsSupprimer les commentaire php regex
- ForumPhp regex recuperer texte entre
- ForumRegex php saut de ligne
- ForumRegex et php
- ForumPhp regex sur balise html
- ForumPhp regex format heure
- ForumPhp, regex, un peu perdu
- Voir plus