如何只从查询字符串中获取内容?:
asegment参数1 =值1&安培; param2的=值2
注意:我只需要“?”之后的所有内容,我也想省略该字符。
答案 0 :(得分:3)
如果你确定你的字符串中有一个查询,那么这就可以了:
echo substr( $string, strpos( $string, '?' ) + 1 );
如果你的字符串可能不包含查询,那么先检查 - strpos
将返回布尔值假。
答案 1 :(得分:2)
这是正则表达式\?(.+)
和Rubular to prove it。并使用它:
preg_match("/\?(.+)/", $inputString, $matches);
if (!$matches) {
// no matches
}
$result = $matches[1];
答案 2 :(得分:1)
在此之前你有几个选择,不需要像
这样的正则表达式$val = (strpos("?", $url) !== false? substr($url, strpos($url, "?")): "");
或parse_url
$val = parse_url($url, PHP_URL_QUERY);
编辑
修复了没有查询字符串
的情况答案 3 :(得分:1)
\([A-z0-9A-Z&安培; =] +)?*
这看起来像是在处理URL,考虑为它们设计的库。如果你只对在?之后获得所有内容感兴趣,那么请使用类似
的内容String s = "asegment?param1=value1¶m2=value2";
String paramStr = s.substring(s.indexOf('?')-1);
编辑:没看到你使用的是PHP - 无视。
答案 4 :(得分:0)
这是使用strrev
和strtok
...
$url = "asegment?param1=value1¶m2=value2";
echo strrev(strtok(strrev($url),'?'));
答案 5 :(得分:0)
您应该使用$ _GET全局数组<?php echo $_GET["param1"]; ?>