如何从URLstring中获取参数?

我有一个HTML表单字段$_POST["url"]有一些URLstring作为值。 示例值是:

 https://example.com/test/1234?email=xyz@test.com
 https://example.com/test/1234?basic=2&email=xyz2@test.com
 https://example.com/test/1234?email=xyz3@test.com
 https://example.com/test/1234?email=xyz4@test.com&testin=123
 https://example.com/test/the-page-here/1234?someurl=key&email=xyz5@test.com

等等

我怎样才能从这些URL /值只获取email参数?

请注意,我没有从浏览器地址栏获取这些string。

你可以使用parse_url()parse_str()

 $parts = parse_url($url); parse_str($parts['query'], $query); echo $query['email']; 

如果你想用PHPdynamic获取$url ,看看这个问题:

在PHP中获取完整的URL

所有参数后? 可以使用$_GET数组访问。 所以,

 echo $_GET['email']; 

将从URL中提取电子邮件。

使用parse_url()和parse_str()方法。 parse_url()会将一个URLstringparsing为其部分的关联数组。 由于您只需要URL的一个部分,因此您可以使用快捷方式只返回一个string值,只需要您想要的部分。 接下来, parse_str()将为查询string中的每个参数创buildvariables。 我不喜欢污染当前的上下文,所以提供第二个参数将所有variables放到关联数组中。

 $url = "https://mysite.com/test/1234?email=xyz4@test.com&testin=123"; $query_str = parse_url($url, PHP_URL_QUERY); parse_str($query_str, $query_params); print_r($query_params); //Output: Array ( [email] => xyz4@test.com [testin] => 123 ) 

在URL中使用$ _GET ['email']参数。 使用$ _POST ['email']发布数据到脚本。 或者使用_ $ REQUEST。 另外,如前所述,您可以使用返回URL的所有部分的parse_url()函数。 使用一个名为“查询”的部分 – 在那里你可以find你的电子邮件参数。 更多信息: http : //php.net/manual/en/function.parse-url.php

你可以使用下面的代码来获得电子邮件地址? 在URL中

 <?php if (isset($_GET['email'])) { echo $_GET['email']; } 

我从@Ruel答案创buildfunction。 你可以使用这个:

 function get_valueFromStringUrl($url , $parameter_name) { $parts = parse_url($url); if(isset($parts['query'])) { parse_str($parts['query'], $query); if(isset($query[$parameter_name])) { return $query[$parameter_name]; } else { return null; } } else { return null; } } 

例:

 $url = "https://example.com/test/the-page-here/1234?someurl=key&email=xyz5@test.com"; echo get_valueFromStringUrl($url , "email"); 

感谢@Ruel

 $uri = $_SERVER["REQUEST_URI"]; $uriArray = explode('/', $uri); $page_url = $uriArray[1]; $page_url2 = $uriArray[2]; echo $page_url; <- see the value 

这是工作格雷我使用PHP

你可以像这样得到这个url的参数:

 email = $_GET["email"]; 

..或者像这样:

 $url = $_SERVER["REQUEST_URI"]; $email = str_replace("/path/to/file.php?email=", "", $url); 

文件path的示例:

如果url如下所示:

 https://example.com/file.php 

那么文件的path是:

 /file.php (+ parameter to get. Example: ?email=) 

你可以使用filter_input()参见php手册