如何从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手册