À l'aide de PHP pour diviser une URL
Je suis entrain de créer un proxy PHP où il accepte une url et confirme qu'il est sur ma liste de serveurs.
Lors de l'importation de l'url de l'application, j'ai couru à un problème où j'avais besoin de 2 analyseur de balises. j'ai besoin de diviser le long d'un "\?" tag ainsi que d'une chaîne, dans mon cas, "l'exportation?"
je suis en utilisant preg pour la première balise. Est-ce à accepter les cordes, comme mon exportation tag ou est-il une autre méthode pour faire cela?
veuillez le-moi savoir comment cela est réalisé ou si vous avez d'autres questions.
Qu'avez-vous essayé jusqu'à présent? Pourriez-vous ajouter un peu de code, peut-être que certaines chaînes d'entrée et à l'expression régulière que vous utilisez?
Avez-vous essayé
J'ai tenté de le la preg_split méthode qui a été inclus dans l'original proxy. le plus gros problème vient du fait que mes urls sont de la forme domain.com/subfolders? ou domain.com/subfolders/export?
Avez-vous essayé
parse_url
au lieu des expressions régulières?J'ai tenté de le la preg_split méthode qui a été inclus dans l'original proxy. le plus gros problème vient du fait que mes urls sont de la forme domain.com/subfolders? ou domain.com/subfolders/export?
OriginalL'auteur crazywill32 | 2010-12-20
Vous devez vous connecter pour publier un commentaire.
Comme ircmaxell a déjà dit dans les commentaires, PHP a déjà une fonction pour analyser une URL:
parse_url
.Et quand vous avez le chemin de l'URL (je suppose que votre
export?
le suffixe de chemin d'accès ainsi que la requête de l'indicateur de), vous pouvez utiliserexplode
de diviser le chemin d'accès dans ses segments de tracé:Vous pouvez obtenir le dernier segment de chemin avec l'une des opérations suivantes:
Et à faire face avec des barres obliques, vous pouvez utiliser
rtrim($path, '/')
pour les supprimer.Tous ensemble:
Oh oui, vous avez raison,
array_slice
retourne un tableau. Essayez l'une des autres variantes de la place.OriginalL'auteur Gumbo
Une expression régulière devrait faire l'affaire, quelque chose comme ci-dessous serait de travailler. C'est ce que Django utilise dans leur URL répartiteur
^
est en début de ligne et$
est la fin de la ligne).OriginalL'auteur Rasiel
Les expressions régulières sont des chaînes de caractères correspond qui peut également inclure la variable correspond. Parce que
?
est inclus dans?
, vous devez faire vos diviser par deux fois. Une fois surexport?
premier et un second passage sur chacun de ces avec?
que votre délimiteur. Comme écrit ci-dessous, vous êtes juste de fractionnement sur une des deux chaînes.Qui n'est pas parfaitement valide en PHP, mais j'espère que c'est assez proche de pseudo.
OriginalL'auteur Jeff Ferland
Hé les gars, j'ai fini par exploser à l'aide d'un qui a regardé de la chaîne (à l'exportation?) et puis j'ai utilisé le preg commande diviser à la recherche pour le \?. cela m'a fourni la portion que je cherchais. merci les gars.
OriginalL'auteur crazywill32