Récupérer valeur entre deux mots !

[Résolu]
Signaler
Messages postés
127
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
11 juin 2008
-
Messages postés
127
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
11 juin 2008
-
Bonjour,

J'ai un petit problème en php :)

Voilà, j'ai un fichier texte qui contient un très long texte,

Je souhaiterait récupérer tout les mots entre le premier mot 'premier mot interessant ' et le mot de délimitation 'dernier mot interessant'

En gros pour une phrase de ce type : 'nia nia nia bla bla premier mot interessant test bla bla nia nia nia demonstration dernier mot interessant'

Je souhaiterai que mon script php récupère ' test bla bla nia nia nia demonstration ' est-ce que vous voyez ce que je veux dire ?

Merci de me venir en aide je galère vraiment depuis plusieurs jours sans rien trouver alors je demande votre aide !

Merci à tous

3 réponses

Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Salut ^^

Pour ton problème, vois avec les REGEX : par exemple, preg_match() ou preg_match_all() avec une regex du style
'`' . $word1 . '(.*)' . $word2 . '`sUi'



J'ai fais une petite fonction et son exemple ^^ :

<?php

$text =  'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas ut massa. Aliquam eu leo. Ut consectetuer, ligula pretium mattis tempus, massa metus convallis eros, sagittis placerat erat enim at pede. Donec risus urna, varius faucibus, faucibus a, dictum ac, nisl. Curabitur sed quam. Quisque pulvinar nunc vitae nulla. Pellentesque blandit lectus non nibh. Pellentesque tristique sagittis tellus. In nulla diam, accumsan eget, ultricies eget, ultrices a, nisi. Quisque vel quam in odio sollicitudin luctus. Fusce lorem lorem, varius id, ullamcorper vitae, aliquam vel, justo. Duis nec lorem. Aliquam rutrum. Praesent pellentesque neque non risus. Integer mattis, nunc quis suscipit pharetra, erat velit varius turpis, vel blandit magna ante et urna. Aliquam lacinia. Aenean faucibus posuere sem. Donec vehicula ultrices orci. In vitae eros et purus consequat euismod. Suspendisse vitae mi. Morbi laoreet neque et turpis. Donec scelerisque scelerisque elit. Nunc lorem. Aliquam quis tellus nec nisl tincidunt porttitor. Aenean posuere mattis nulla. Proin tempus tempus orci. Morbi pede sapien, euismod sollicitudin, mollis ut, posuere ac, elit. Donec placerat sollicitudin arcu. Nunc sodales, ante in ultrices sollicitudin, lectus justo elementum eros, eu iaculis felis diam vel eros. ';

$text .= $text;

function SearchTextWithTwoWords($text, $word1, $word2, $SearchAll = true)

{

    $return =  array();

    if( $SearchAll )

    {

        if(   preg_match_all('`' . $word1 . '(.*)' . $word2 . '`sUi', $text, $results, PREG_SET_ORDER )  )

        {

            foreach( $results as $result )

            {

                $return[]   = $result[1];

            }

        }

        else

        {

            return false;

        }

    }

    else

    {

        if( preg_match('`' . $word1 . '(.*)' . $word2 . '`sUi', $text, $results) )

        {

            $return[] = $results[1];

        }

        else

        {

            return false;

        }

    }

    return $return;

}

$word1 = 'dolor';

$word2 = 'ut';

echo '';

print_r(SearchTextWithTwoWords($text, $word1, $word2, true));

echo '<hr />';

print_r(SearchTextWithTwoWords($text, $word1, $word2, false));

echo '

';

?>

Array
(
[0] => sit amet, consectetuer adipiscing elit. Maecenas
[1] => sit amet, consectetuer adipiscing elit. Maecenas
)

<hr />Array
(
[0] => sit amet, consectetuer adipiscing elit. Maecenas
)

<hr />Si ma reponse te convient, merci de l'accepter ! 
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
Salut,

if (preg_match('/premier mot interessant(.*)dernier mot interessant/', 'nia nia nia bla bla premier mot interessant test bla bla nia nia nia demonstration dernier mot interessant', $aRegs)) echo $aRegs[1];

Sinon il y a strpos() combiné à substr() qui aurait le meme effet..

win
Messages postés
127
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
11 juin 2008

Merci beaucoup