lorik Posté 24 Mai 2008 Posté 24 Mai 2008 Bonjour, Un truc très C... : Je cherche à savoir la position du dernier '\' dans une url, pour récuperer le nom de la page. Simple, quoi ? Probléme, quelle que soit la fonction php que j'utilise (strrpos, explode, etc...), $string=explode ($chemin, "\"); systématiquement, mon editeur de code considère qu'il manque une cote dans la ligne... du coup, pas moyen d'utiliser ce caractère, c'est fou ça ! Je pense qu'il doit y avoir une astcue, mais je vois pas laquelle Merci de vos lumières
Dan Posté 24 Mai 2008 Posté 24 Mai 2008 L'antislash a ceci de particulier est qu'il sert de caractère d'échappement. Il faut donc l'échapper lui aussi, avec un ... antislash $string=explode ($chemin, "\\");
lorik Posté 24 Mai 2008 Auteur Posté 24 Mai 2008 Salut Dan, L'idée m'avait effleuré . J'avais essayé avec un : $page="http://www.site.fr/strategie/prestations.php"; $page=parse_url($page); $chemin=$page['path']; // $chemin renvoie /strategie/prestations.php $string=explode ($chemin, "\\"); echo "bla= ".$string[0]."<br>";// donne bla= / -->je dis bien un slash, pas un antislash echo "bla= ".$string[1]."<br>"; // $string[1] est vide Même chose avec un str_replace avec \\... ça ne trouve pas la chaine. j'ai pas l'impression que ça soit la solution...
lorik Posté 24 Mai 2008 Auteur Posté 24 Mai 2008 Bon, comme d'ab, je me tire une balle dans le pied... Dans les urls, c'est pas des \, c'est des / par contre, au final, c'est pas mieux : $page="http://www.site.fr/strategie/prestations.php"; $page=parse_url($page); $chemin=$page['path']; // $chemin renvoie /strategie/prestations.php $string=explode ($chemin, "/"); echo "bla= ".$string[0]."<br>";// donne bla= / -->je dis bien un slash echo "bla= ".$string[1]."<br>"; // $string[1] est vide C'est bizarre, normalement, je devrais avoir les contenus des urls, pas le séparateur, non ?
Kioob Posté 24 Mai 2008 Posté 24 Mai 2008 pour récuperer le nom de la page et pourquoi pas un simple basename() ?
lorik Posté 25 Mai 2008 Auteur Posté 25 Mai 2008 Connaissais pas, mais oui effectivement, c'est bien plus simple, merci
Dan Posté 25 Mai 2008 Posté 25 Mai 2008 A lecture de ta question, j'avais compris que tu avais des antislashes dans tes URLs, tout en ne comprenant pas forcément pourquoi ... Effectivement, basename() est beaucoup plus simple dans le cas des urls plus "conventionnelles".
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant