[RESOLU] Récupérer un mot entre deux x-chaine de caractère

Eléphant du PHP | 115 Messages

06 sept. 2018, 14:14

Bonjour tous le monde,

J'ai une petite question ou je ne trouve pas réponse.
Je cherche a extraire un mot ou un phrase dans une chaine de caractère.

Exemple :

E-mail : [email protected] Site Web : www.tot.c Forme : Rond

ce que je veux faire c'est cela :
Dire que entre "E-mail :" et "Site Web :" je veux récupérer ce qu'il y a au milieux.

Cela me donne : [email protected]

Merci de votre aide,

Mammouth du PHP | 2703 Messages

06 sept. 2018, 14:21


Eléphant du PHP | 115 Messages

07 sept. 2018, 09:36

Merci de ton aide,

Sa fonctionne bien quant je rentre di text

Code : Tout sélectionner

$re = '/E-mail : (.*) Site Web/m'; $str = 'E-mail : [email protected] Site Web : www.tot.c Forme : Rond'; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); // Print the entire match result var_dump($matches);
Mais je récupère le texte sous forme d'un array.
E-mail : [email protected] Site Web : www.tot.c Forme : Rond

$str = array[0];
J'ai pas de résultat aurai tu une idée.

Merci beaucoup,

Mammouth du PHP | 688 Messages

07 sept. 2018, 09:44

$matches[1]

Eléphant du PHP | 115 Messages

07 sept. 2018, 11:16

sa marche pas j'ai fait cela

$re = '/E-mail : (.*) Site Web/m';
echo $str = $result[0]; echo "<br />";

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);

et le résultat est cela :

E-mail : [email protected] Site Web : www.tot.c Forme : Rond
array(0) { }

Avatar du membre
Eléphanteau du PHP | 18 Messages

07 sept. 2018, 22:48

Utilises print() quand tu debug un array

En reprenant ton premier exemple
$re = '/E-mail : (.*) Site Web/m';
$str = 'E-mail : [email protected] Site Web : www.tot.c Forme : Rond';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

var_dump($matches[0][1]);
Résultat => string(10) "[email protected]"

Tu pouvais aussi obtenir le même résultat avec preg_replace
$re = '/(.*):(.*)Site(.*)/sm';
$str = 'E-mail : [email protected] Site Web : www.tot.c Forme : Rond';
$result = trim(preg_replace($re, '\2', $str));
var_dump( $result );
Résultat => string(10) "[email protected]"