cherche chaine de caractère

Eléphant du PHP | 417 Messages

24 août 2011, 01:22

Bonjour à tous le monde,

je cherche a voir dans un text si la chaine de caractère (Modifier Par) en php

comment faire?

Merci d'avance

Eléphant du PHP | 417 Messages

24 août 2011, 02:13

j'ai trouvé cette function 'ereg' ça marche mais malgré ça y a un msg d'erreur (Function ereg() is deprecated in...) et apres une recherche des information de cette function sur net j'ai trouvé qu'il ne marche plus depuis php 5 et qu'il vaut mieux de l'éviter

quelle function peux jouer le meme rôle de ereg() ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 août 2011, 08:10

salut,

ce n'est pas que la fonction ne "fonctionne" plus elle existe toujours pour la compatibilité ascendante du code :)

si tu regarde bien les notes de la fonction ereg tu y trouvera que preg_match est l'alternative conseillée par php.net ;)

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 2278 Messages

24 août 2011, 09:04

Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 417 Messages

24 août 2011, 18:42

salut,

ce n'est pas que la fonction ne "fonctionne" plus elle existe toujours pour la compatibilité ascendante du code :)

si tu regarde bien les notes de la fonction ereg tu y trouvera que preg_match est l'alternative conseillée par php.net ;)

@+
j'ai essayé preg_match mais ça marche pas :s

enfait quand je fait

if (ereg("Modifier par :",$resultposts->post))
echo 'oui';
else
echo 'non';

mais quand je fait

if (preg_match("Modifier par :",$resultposts->post))
echo 'oui';
else
echo 'non';

et le résultat de la première c'est oui mais avec le msg d'erreur que j'ai indiqué au début

et pour la 2eme résultat c'est non (alors que Modifier par : existe bien dans $resultposts->post ) et ce msg d'erreur
preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash ....

Eléphanteau du PHP | 34 Messages

24 août 2011, 20:46

Salut,

Voici un exemple d'utilisation en espérant que cela puisse t'aider.
$chaine = 'blabla Modifier par : toto le 12 zad/ezf/fzef.';
$trouve = preg_match_all('/modifier par :/i', $chaine, $tabTrouve);
//le petit 'i' signifie que tu rends la chaine de caractère recherché insensible à la casse.
//les '/' au début et à la fin délimitent la recherche PCRE.

if($tabTrouve[0][0] == "Modifier par :"){
  echo 'TROUVE !!';
}
else{
  echo 'Pas trouvé....';
}
Pour voir le contenu du tableau tape ça :
print_r($tabTrouve);
Bon... sans mentir c'est un peu à l'arrache mais c'est suffisant pour le moment.

;) Alf?> like you !!!

devlop78
Invité n'ayant pas de compte PHPfrance

24 août 2011, 20:58

Oui d'autant que s'il le trouve, il sera donc logiquement égal à ce qu'il a cherché ^^

Mais il pourrait être intéressant de récupérer le nom de la personne ;)

Eléphanteau du PHP | 34 Messages

24 août 2011, 21:03

Bon okok :mrgreen:

Voilà qui est plus satisfaisant :
$chaine = 'blabla Modifier par : toto le 12 zad/ezf/fzef.';

//le petit 'i' signifie que tu rends la chaine de caractère recherché insensible à la casse.
//les '/' au début et à la fin délimitent la recherche PCRE.

if(preg_match('/modifier par :/i', $chaine)){
  echo 'TROUVE !!';
}
else{
  echo 'Pas trouvé....';
}
Bon là je ne place pas les éléments de ma recherche dans le nouveau tableau (cf:$tabTrouve) donc le print_r() ne sera pas utils.

=D> bravo Alf?> :lol:

Eléphant du PHP | 417 Messages

24 août 2011, 21:38

Bon okok :mrgreen:

Voilà qui est plus satisfaisant :
$chaine = 'blabla Modifier par : toto le 12 zad/ezf/fzef.';

//le petit 'i' signifie que tu rends la chaine de caractère recherché insensible à la casse.
//les '/' au début et à la fin délimitent la recherche PCRE.

if(preg_match('/modifier par :/i', $chaine)){
  echo 'TROUVE !!';
}
else{
  echo 'Pas trouvé....';
}
Bon là je ne place pas les éléments de ma recherche dans le nouveau tableau (cf:$tabTrouve) donc le print_r() ne sera pas utils.

=D> bravo Alf?> :lol:

Yeah good Alf?> ^^ merci