Php 从url中选择搜索查询
以下是我目前掌握的情况:Php 从url中选择搜索查询,php,regex,preg-match,Php,Regex,Preg Match,以下是我目前掌握的情况: preg_match('/[q|p]=(.*?)&/',$url,$query); 问题是,如果有一个以q或p结尾的参数,它将包括以下内容: &cap=queryhere 既然cap以p结尾,它就包括了这些,我怎么能只包括来自q和p的搜索查询呢。谢谢 您可以将正则表达式更新为'/\W[q | p]=(.*)&/' 仅当前面的数字不是单词字符(a-Z、0-9或x)时,将\W添加到前面才匹配 就个人而言,我只会使用$\u GET['p']或$\u GET
preg_match('/[q|p]=(.*?)&/',$url,$query);
问题是,如果有一个以q
或p
结尾的参数,它将包括以下内容:
&cap=queryhere
既然
cap
以p
结尾,它就包括了这些,我怎么能只包括来自q和p的搜索查询呢。谢谢 您可以将正则表达式更新为'/\W[q | p]=(.*)&/'
仅当前面的数字不是单词字符(a-Z、0-9或x)时,将\W添加到前面才匹配
就个人而言,我只会使用$\u GET['p']
或$\u GET['q']
<?php
if ( isset($_GET['p']) )
$query = $_GET['p'];
?>
您不需要使用正则表达式,php内置了处理信息类型的函数,它更准确
<?php
$url = "http://mysite.com/page.php?q=this is my query&a=123";
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $opt);
print_r($opt);
不适用于
word?q=query
查询是我想要匹配的。谢谢Westy尝试一下$_如果GET不是来自浏览器的URL,则GET不起作用,但他没有指定。如果是的话,我会同意的。
Array
(
[q] => this is my query
[a] => 123
)