Recherche dans une chaine de caractere en php

[Fermé]
Signaler
-
Messages postés
123
Date d'inscription
dimanche 6 avril 2008
Statut
Membre
Dernière intervention
23 février 2010
-
Salut

dans une chaîne de caractère, j'essai d'extraire un morceau de chaîne de caractère comprise entre deux chaînes de caractères de référence.

ex:
la chaîne: ebjsfb toto ce que je cherche titi ksjnknf titi dfg
mot de référence de début : toto
mot de référence de fin : titi
résultat: ce que je cherche
NB: je ne veux pas des mots de référence

ce que j'ai fait:
if(ereg("toto(.*)titi",$str,$sortie))
echo $sortie[1];

Le problème, il va chercher la dernière occurrence de ma chaîne de référence de fin, alors que je veux la première

Merci
A voir également:

4 réponses

Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
502
Salut Seb,
Fais comme ceci :
if(ereg("toto(.*?)titi", $str, $sortie))
ou bien :
if(preg_match("toto(.*?)titi", $str, $sortie))
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

## 'ai la meme volontée de récuperer une chaine entre 2 occurences :

## Je cherche a récuperer tous les liens d'une page distante.

## J'ai fais cette fonction :

<?php

function get_infos( $src )
{

$handle = file_get_contents( $src );
$content = preg_match('`<a href="http://www(.*?)</a>`', $handle, $matches);
$i=0;

foreach( $matches as $term )
{
//AJOUT DU RELIEN POUR OCCURENCES SUIVANTES.
$i++;if( $i>1 ){echo 'http://www';}
echo $term . '<br>' . "\n\r";
}

}
get_infos( 'http://www.commentcamarche.net/forum/affich-238500-recherche-dans-une-chaine-de-caractere-en-php' );

?>

## Le résultat :

<a href="https://www.commentcamarche.net/" class="ccm_01_on">High-Tech</a><br>
<a href="http://pepsmix1.free.fr/real/.commentcamarche.net" class="ccm_01_on">High-Tech<br>

## Cela ne me sort que 2 lignes distinctes :o( je ne comprend pas pourquoi le reste ne sort pas...
Messages postés
123
Date d'inscription
dimanche 6 avril 2008
Statut
Membre
Dernière intervention
23 février 2010
12
ça date mais j'ai je pense la solution à ta question:
la commande stripos()
https://www.php.net/manual/fr/function.stripos.php
plutôt qu'une expression régulière utilise cette commande bien pratique et insensible à la casse.

le contraire (rechercher la dernière ocurrence dans une chaine), c'est strripos()


après tu peux utiliser substr() pour découper ta chaîne.

j'ai utilisé ces fonctions dans une boucle for ça marche nickel pour découper un fichier tabulé et placer chaque découpage dans un tableau.

il y a peu être plus simple, mais bon.
voilà en espérant que ça puisse aider
Messages postés
46
Date d'inscription
mercredi 12 mars 2003
Statut
Membre
Dernière intervention
20 mars 2003

Solution "bricolage" : tu peux faire un explode de la chaine que tu obtiens, et prendre la première occurence dans le tableau généré...

/**\    En tout homme, un animal sommeille.
\__/     J'espère que c'est pas un truc qui rampe...