Aller au contenu

Problème d'antislashes dans les fonctions php


lorik

Sujets conseillés

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 :)

Lien vers le commentaire
Partager sur d’autres sites

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, "\\");

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

Bon, comme d'ab, je me tire une balle dans le pied... :(

Dans les urls, c'est pas des \, c'est des / :wub:

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 ?

Lien vers le commentaire
Partager sur d’autres sites

A lecture de ta question, j'avais compris que tu avais des antislashes dans tes URLs, tout en ne comprenant pas forcément pourquoi ... :whistling:

Effectivement, basename() est beaucoup plus simple dans le cas des urls plus "conventionnelles".

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...