par
albat » 16 oct. 2008, 09:00
Pour obtenir :
http://mondomaine/index.php/decoration/ ... -mer-terre
à partir de :
http://mondomaine/index.php/decoration/ ... 1/0/0/32/0
sans utiliser les Regexp, juste avec des fonctions PHP de traitement de chaines :
function isolation_url($chaine)
{ // initialisation
$chaine = 'http://mondomaine/index.php/decoration/list/42__air-mer-terre/1/0/0/32/0'; // si pas passée en paramètre
$newchaine = '';
// recherche du segment 'list/' puis découpage
$a = strpos($chaine,'list/');
$newchaine = substr($chaine,0,$a+5); // le +5 correspond à la longueur du segment 'list/' que l'on doit inclure
$resteA = substr($chaine,$a+5);
// recherche du segment suivant puis découpage
$b = strpos($resteA,'/');
$resteB = substr($resteA,0,$b);
// Recollage
$newchaine .= $resteB;
return $newchaine;
}
ou, pour les grands malades dans mon genre :
function isolation_url($chaine)
{ return substr($chaine,0,strpos($chaine,'list/')+5).substr(substr($chaine,strpos($chaine,'list/')+5),0,strpos(substr($chaine,strpos($chaine,'list/')+5),'/'));
}

Pour obtenir : http://mondomaine/index.php/decoration/list/42__air-mer-terre
à partir de : http://mondomaine/index.php/decoration/list/42__air-mer-terre/1/0/0/32/0
sans utiliser les Regexp, juste avec des fonctions PHP de traitement de chaines :
[php]function isolation_url($chaine)
{ // initialisation
$chaine = 'http://mondomaine/index.php/decoration/list/42__air-mer-terre/1/0/0/32/0'; // si pas passée en paramètre
$newchaine = '';
// recherche du segment 'list/' puis découpage
$a = strpos($chaine,'list/');
$newchaine = substr($chaine,0,$a+5); // le +5 correspond à la longueur du segment 'list/' que l'on doit inclure
$resteA = substr($chaine,$a+5);
// recherche du segment suivant puis découpage
$b = strpos($resteA,'/');
$resteB = substr($resteA,0,$b);
// Recollage
$newchaine .= $resteB;
return $newchaine;
}[/php]
ou, pour les grands malades dans mon genre :
[php]function isolation_url($chaine)
{ return substr($chaine,0,strpos($chaine,'list/')+5).substr(substr($chaine,strpos($chaine,'list/')+5),0,strpos(substr($chaine,strpos($chaine,'list/')+5),'/'));
}[/php] :shock: :langue: