Vérifiez si les paramètres dans une URL
Comment puis-je vérifier si l'URL contient des paramètres?
par exemple, si la chaîne est comme ça,
form_page_add.php?parent_id=1
return true
Mais si c'est comme cela,
form_page_add.php?
return nothing
Grâce.
EDIT:
Désolé de ne pas être clair, l'URL est soumis à partir d'une de comme une chaîne de caractères. et je stocke la chaîne dans une variable,
if(isset($_POST['cfg_path'])) $cfg_path = trim($_POST['cfg_path']);
j'ai donc besoin de vérifier cette variable $cfg_path whether
est a des paramètres.
Est-ce l'URL de celle demandée par le client (c'est à dire accessible via $_GET), ou est-il dans une chaîne de caractères?
désolé c'est dans une chaîne de caractères, mais pas via $_GET
Soit de Jon réponse est correcte, ou votre question est mal écrit!
désolé c'est dans une chaîne de caractères, mais pas via $_GET
Soit de Jon réponse est correcte, ou votre question est mal écrit!
OriginalL'auteur laukok | 2011-03-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser cette fonction simple:
Le voir en action ici.
Il sera de retour la valeur du paramètre s'il existe dans l'url, ou
null
si elle n'apparaît pas du tout. Vous pouvez faire la distinction entre un paramètre ayant aucune valeur et ne figurant pas à l'identique de l'opérateur (triple égal à égal,===
).Cela fonctionne avec n'importe quelle URL de transmettre, non seulement
$_SERVER['REQUEST_URI']
.Mise à jour:
Si vous voulez simplement savoir si il y a n'importe quel paramètre à tous les dans l'URL, alors vous pouvez utiliser une variante de la ci-dessus (voir Phil suggestion dans les commentaires).
Ou, vous pouvez utiliser le étonnamment simple testNous n'avons même pas besoin de la peine de vérifierfalse
ici, comme si un signe égal, il ne sera pas le premier caractère.Mise à jour #2: Tandis que la méthode à l'aide de
strpos
de travail pour plus Url, ce n'est pas à l'épreuve des balles et ne devrait donc pas être utilisé si vous ne savez pas ce type d'URL que vous travaillez avec. Comme Steve Onzra correctement points dans les commentaires, les Url commesont valables et qui pourtant ne contient pas de n'importe quel paramètre.
$name
en option. S'il est omis, le retour$vars
Je vais laisser le code est de rester simple, mais c'est une très bonne idée pour une fonction de la bibliothèque.
Eh bien, si vous voulez simplement savoir si il y a aucun paramètre dans l'url, vous pouvez également utiliser
strpos($url, '=')
-- rudimentaire mais efficace 🙂Ce serait si vous le souhaitez il est passé comme un paramètre. C'est valable par le RFC: stackoverflow.com/questions/1856785/characters-allowed-in-a-url
Vous êtes donc à droite. Il y a quelque chose de nouveau à apprendre tous les jours!
OriginalL'auteur Jon
Peut également rechercher une clé spécifique avec array_key_exists(), par exemple
http://php.net/manual/en/function.array-key-exists.php
OriginalL'auteur barfoon
Un autre moyen de vérifier serait d'utiliser
parse_url()
méthode. Vérifiez les docs ici. Cette fonction retourne un tableau associatif avec un élément "requête", qui contiendra les paramètres GET.Utiliser le
empty()
fonction pour vérifier et voir si ce champ est vide ou pas. Si vide, alors pas de paramètres ont été transmis.Exemple De Code -
Sortie
OriginalL'auteur arijeet
Si vous êtes à la recherche pour savoir si une URL stockée comme une chaîne de caractères (au lieu de l'URL qui est appelé à invoquer le script PHP), vous pouvez utiliser
strpos()
Alors vous pourriez être en mesure de rechercher la chaîne de caractères pour une occurence de ?, et puis d'agir en conséquence. Par exemple:
OriginalL'auteur dmcnelis