Récupérer valeur entre deux mots !

Résolu
AtomiKiller Messages postés 127 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 11 juin 2008 - 11 juin 2008 à 14:21
AtomiKiller Messages postés 127 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 11 juin 2008 - 11 juin 2008 à 17:29
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

JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
11 juin 2008 à 16:20
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 ! 
3
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
11 juin 2008 à 16:12
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
1
AtomiKiller Messages postés 127 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 11 juin 2008
11 juin 2008 à 17:29
Merci beaucoup
0
Rejoignez-nous