Php 提取与$\u GET具有相同结果的URL字符串
好的,我有一个这样的字符串:Php 提取与$\u GET具有相同结果的URL字符串,php,string,get,Php,String,Get,好的,我有一个这样的字符串: index.php?page=test2;sa=废话 我只需要获取使用$\u GET['page']返回的内容,因此在本例中它将返回test2。但在返回实际字符串之前,页面必须直接在index.php?之后定义。我该怎么做?我只需要从page变量的$GET返回相同的结果。我也可以这样做: index.php?page=blah 应该返回blah 或者这个: index.php?page=anything&sa=blah 返回任何内容 或者这个: index.php?
index.php?page=test2;sa=废话
我只需要获取使用$\u GET['page']
返回的内容,因此在本例中它将返回test2
。但在返回实际字符串之前,页面必须直接在index.php?
之后定义。我该怎么做?我只需要从page变量的$GET返回相同的结果。我也可以这样做:
index.php?page=blah
应该返回blah
或者这个:
index.php?page=anything&sa=blah
返回任何内容
或者这个:
index.php?action=blah;第2页
返回空字符串,因为它不是直接在index.php?
或者基本上是任何url,但它需要获取页面变量(如果它存在),只有在index.php?
之后。有时页面可能根本不存在,在这种情况下,应该返回一个空字符串
我该怎么做?我没有在浏览器中浏览到URL,因此,我认为$\u-GET不起作用,但它需要模拟并返回与$\u-GET在浏览器中返回的结果完全相同的结果,但只有当
页面
直接在index.php?之后定义时,才是您的朋友。和您的朋友。请使用以下代码:
function get($name, $url) {
$src = parse_url($url);
$src = $src['query'];
parse_str($src, $tag);
return $tag[$name];
}
请使用以下代码:
function get($name, $url) {
$src = parse_url($url);
$src = $src['query'];
parse_str($src, $tag);
return $tag[$name];
}
您可以通过比较或简单的if语句来检查在$\u GET处接收的元素是否与预期的相等。如果没有,则处理字符串以找到它(如果需要)。也可以使用元素的索引来确定过程是否正确 您可以通过比较或简单的if语句来检查在$\u GET处接收的元素是否与您期望的相等。如果没有,则处理字符串以找到它(如果需要)。也可以使用元素的索引来确定过程是否正确 具体来说,parse_str
。并使用第二个(数组输出)参数,而不是依赖注入到当前作用域(可能是全局的)。这些函数将使您朝着正确的方向前进,我这样做是为了将url转换为数组,反之亦然,使用这些函数变得很简单。嘿,我尝试过,这会影响以下内容,并且不起作用:$link='index.php?page=test2;sa=废话;parse_str($link,$page_输出)$page_output['page']返回空字符串
那么,$page_output['page']
怎么会不起作用呢???@SoLo首先用parse_URL
解析URLparse_str
只解析查询部分(在?
之后的部分)。具体来说,parse_str
。并使用第二个(数组输出)参数,而不是依赖注入到当前作用域(可能是全局的)。这些函数将使您朝着正确的方向前进,我这样做是为了将url转换为数组,反之亦然,使用这些函数变得很简单。嘿,我尝试过,这会影响以下内容,并且不起作用:$link='index.php?page=test2;sa=废话;parse_str($link,$page_输出)$page_output['page']返回空字符串
那么,$page_output['page']
怎么会不起作用呢???@SoLo首先用parse_URL
解析URLparse_str
只解析查询部分(在?
之后的部分)。您的示例没有帮助,因为它在index.php?
之后返回整个文本。因此,对您的示例执行相同的操作将返回以下结果:test2;sa=blah
它应该只返回test2
。如何做到这一点???@SoLo这是正确的行为,因为代码>不是分隔符<代码>&
是。任何一个都可以在我的网站上使用,那么如何模仿$\u GET['page']
呢??在任何情况下,即使我使用&作为分隔符,对于这个答案,它仍然返回:test2&sa=blah
Ok,我使用您的方法实现了这一点。感谢您提供的示例:)您的示例没有帮助,因为它返回了index.php?
之后的整个文本。因此,对您的示例执行相同的操作将返回以下结果:test2;sa=blah
它应该只返回test2
。如何做到这一点???@SoLo这是正确的行为,因为代码>不是分隔符<代码>&
是。任何一个都可以在我的网站上使用,那么如何模仿$\u GET['page']
呢??在任何情况下,即使我使用&作为分隔符,对于这个答案,它仍然返回:test2&sa=blah
Ok,我使用您的方法实现了这一点。谢谢你的例子:)