analyser une chaine de caractéres

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : analyser une chaine de caractéres

par christele » 18 févr. 2008, 23:24

tu as la réponse plus haut 8-) preg_match
Trouve la chaîne "phpfrance" etc ...
Oui parfait et grand merci :D

par dogmongo » 18 févr. 2008, 22:25

tu as la réponse plus haut 8-) preg_match


Trouve la chaîne "phpfrance"

// Le "i" après le délimiteur du pattern indique que la recherche ne sera pas sensible à la casse

if (preg_match("/phpfrance/i", "phpfrance est le meilleur site php du web.")) {
    echo 'Un résultat a été trouvé.';

} else {

    echo 'Aucun résultat n\'a été trouvé.';

}

par christele » 18 févr. 2008, 20:38

Merci Dogmongo et Mere-Teresa

Vos réponses me conviennent trés bien, mais j'oserais aller plus loin,
Ayant en fait souvent a manipuler des chaines de caractéres, j'aimerais me refaire
une fontion "passe partout" pour analiser une chaine "caractére par caractere"

venant du langage C c' était enfantin

Code : Tout sélectionner

var char truc[200]; var int a=0; strcpy (truc,"client etc ..."); for a=0;a<250;a++) if (truc[a]=='#' ) etc ...
Alors je voudrais (la gourmande :oops: ) reproduire même si c' est long un outils PHP
me rendant le même service.

Je sais trouver un caractére dans une chaine, (sa place en numérique )
Je sais extraire de cette place XX caractéres
MAIS par exemple ayant trouvé par exemple mon premier "P" dans une chaine,
je ne sais pas par quel verbe on obtient le suivant "P" ???

Vous comprenez ce que je cherche a réaliser ?

Alors si vous avez la patience, ce serait de l'OR pour moi d'avoir ce module qui me serait souvent util !

De toute façon mervi a vous deux de votre aide.

par mere-teresa » 18 févr. 2008, 19:00

As-tu des dièses en réalité ?
Je te conseille de te pencher sur preg_match() et les expressions régulières pour dire que tu cherches #suivi de 3 chiffres, suivi de 1 lettre, suivi de # (par exemple) et des parenthèses capturantes.

Pour en savoir plus : http://expreg.com/

par dogmongo » 18 févr. 2008, 18:33

j'aurais envis de te dire de faire un double explode mais je suis sur qu'il y a plus simple !


$Maligne ="Bringen Claude article #124OB# et 2 articles #12A# a livrer urgent";

//ici ta chaine va etre découpé en 5 morceaux
$tab = explode("#", $Maligne);
//Bringen Claude article = $tab[0]
//124OB =$tab[1]
//et 2 articles = $tab[2]
//12A = $tab[3]
//a livrer urgent = $tab[4]



//les 1 et 3 sont tes référence , sachant que le premier commence à 0 tes référence sont 
// $tab[1] & $tab[3]
echo "article 1 = $tab[1]<br>articles 2 =$tab[3]";

analyser une chaine de caractéres

par christele » 18 févr. 2008, 17:30

Bonjour,

Je débutes et voudrais extraire une , deux , ou troi valeurs , dans chaque ligne d'un fichier texte lu par un PHP.

Chaque ligne est lue par mon PHP et cela marche bien, dans toutes les lignes j'ais une ou deux valeurs a extraire , car les lignes sont de ce type:

Code : Tout sélectionner

En fait $Maligne-en_cour contient ce genre de texte : Bringen Claude article #124OB# et 2 articles #12A# a livrer urgent
J'ais un

Code : Tout sélectionner

$LesX = array(); et son compteur $Nbr
pour stocker les valeurs d'articles trouvées.
Les (ici) deux valeurs a extraire sont celles contenues entre les diéze

Merci de m'indiquer quel expression ou module vous me conseillez pour obtenir ce résultat.