J'ai un champ de formulaire HTML $_POST["url"]
ayant des chaînes URL comme valeur. Les exemples de valeurs sont:
https://example.com/test/[email protected] https://example.com/test/1234?basic=2&[email protected] https://example.com/test/[email protected] https://example.com/test/[email protected]&testin=123 https://example.com/test/the-page-here/1234?someurl=key&[email protected]
etc.
Comment puis-je obtenir uniquement le email
paramètre de ces URL / valeurs?
Veuillez noter que je ne reçois pas ces chaînes de la barre d'adresse du navigateur.
php
url-parsing
Asim Zaidi
la source
la source
/(email=\w\@\w\.\w)/
des techniques d'appariement plus avancées. Je vous donne juste l'idée. Voir lapreg_match
fonction: php.net/manual/en/function.preg-match.phpRéponses:
Vous pouvez utiliser le
parse_url()
etparse_str()
pour cela.Si vous voulez obtenir
$url
dynamiquement avec PHP, jetez un œil à cette question:Obtenez l'URL complète en PHP
la source
Tous les paramètres après
?
peuvent être consultés en utilisant un$_GET
tableau. Alors,va extraire les e-mails des URL.
la source
https://[email protected]
$email = $_GET['email']; $email === '[email protected]';
Utilisez les méthodes parse_url () et parse_str () .
parse_url()
analysera une chaîne URL dans un tableau associatif de ses parties. Étant donné que vous ne souhaitez qu'une seule partie de l'URL, vous pouvez utiliser un raccourci pour renvoyer une valeur de chaîne avec uniquement la partie souhaitée. Ensuite,parse_str()
va créer des variables pour chacun des paramètres de la chaîne de requête. Je n'aime pas polluer le contexte actuel, donc fournir un deuxième paramètre place toutes les variables dans un tableau associatif.la source
Utiliser
$_GET['email']
pour les paramètres dans l'URL. Utilisez$_POST['email']
pour les données publiées dans le script. Ou utilisez_$REQUEST
pour les deux. En outre, comme mentionné, vous pouvez utiliser uneparse_url()
fonction qui renvoie toutes les parties de l'URL. Utilisez une partie appelée «requête» - vous y trouverez votre paramètre de messagerie. Plus d'informations: http://php.net/manual/en/function.parse-url.phpla source
address bar
. Ces URL ne sont que des chaînes deIN
code.vous pouvez utiliser le code ci-dessous pour obtenir une adresse e-mail après? dans l'URL
la source
Comme mentionné dans une autre réponse, la meilleure solution consiste à utiliser
parse_url()
Vous devez utiliser la combinaison de
parse_url()
etparse_str()
.L'
parse_url()
URL d'analyse et retourner ses composants que vous pouvez obtenir la chaîne de requête à l'aide de laquery
clé. Ensuite, vous devez utiliserparse_str()
cette chaîne de requête d'analyse et renvoyer des valeurs dans une variable.Vous pouvez également effectuer ce travail en utilisant l' expression régulière .
preg_match()
Vous pouvez utiliser
preg_match()
pour obtenir la valeur spécifique de la chaîne de requête à partir de l'URL.preg_replace()
Vous pouvez également utiliser
preg_replace()
pour effectuer ce travail sur une seule ligne!la source
J'ai créé une fonction à partir de la réponse @Ruel . Vous pouvez utiliser ceci:
Exemple:
Merci à @Ruel
la source
Cela fonctionne très bien pour moi en utilisant php
la source
la source
Une réponse beaucoup plus sûre qui me surprend n'est pas encore mentionnée ici:
filter_input
Donc, dans le cas de la question, vous pouvez utiliser ceci pour obtenir une valeur de courrier électronique à partir des paramètres d'obtention d'URL:
$email = filter_input( INPUT_GET, 'email', FILTER_SANITIZE_EMAIL );
Pour d'autres types de variables, vous voudriez choisir un filtre différent / approprié tel que
FILTER_SANITIZE_STRING
.Je suppose que cette réponse fait plus qu'exactement ce que la question demande - obtenir les données brutes du paramètre URL. Mais ceci est un raccourci d'une ligne qui est le même résultat que celui-ci:
Autant prendre l'habitude de saisir des variables de cette façon.
la source
A Laravel, j'utilise:
la source
Fonction dynamique qui analyse l'url de la chaîne et obtient la valeur du paramètre de requête passé dans l'URL
Fonction d'appel pour obtenir le résultat
la source
Pour obtenir les paramètres de la chaîne URL, j'ai utilisé la fonction suivante.
S'il existe de nombreuses chaînes d'URL, vous pouvez utiliser la boucle pour obtenir le paramètre 'email' de toutes ces chaînes d'URL et les stocker dans un tableau.
la source