Recherche dans une chaine de caractere en php

Fermé
Seb - 14 mars 2003 à 18:19
Judes-Emile Bornes IV Messages postés 123 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 23 février 2010 - 13 août 2009 à 18:57
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

Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
18 mars 2003 à 01:57
Salut Seb,
Fais comme ceci :
if(ereg("toto(.*?)titi", $str, $sortie))
ou bien :
if(preg_match("toto(.*?)titi", $str, $sortie))
6
## '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...
1
Judes-Emile Bornes IV Messages postés 123 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 23 février 2010 12
13 août 2009 à 18:57
ç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
1
noise Messages postés 46 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 20 mars 2003
14 mars 2003 à 19:20
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...
0