例如,我的网址为http://example.tld/~2g
。我希望在~
(2g
此处)之后获取数据。
我该怎么做?我试过了
$visitlink = explode("~", $_SERVER['REQUEST_URI']);
但这不起作用。
答案 0 :(得分:2)
我会用这个:
$visitlink = explode("~",$_SERVER['REQUEST_URI'],2);
$aftertilde = $visitlink[1];
答案 1 :(得分:0)
$visitlink = preg_replace('/^[^~]+~(.*)$/', '$1', $_SERVER['REQUEST_URI']);
RegEx的^[^~]+~
部分将匹配所有内容,直到遇到~
为止。 (.*)
会在波浪之后匹配所有内容。 $1
用于反向引用(.*)
匹配的内容。
答案 2 :(得分:0)
list($before, $after) = explode("~", $_SERVER['REQUEST_URI'], 2);
这应该有效。我不确定列表函数是否已被弃用。
答案 3 :(得分:0)
要充分利用explode
函数,请告诉PHP仅在第一个~
分割(通过告诉 2 )。 list
构造有助于直接指定返回值(Demo):
list(, $visitlink) = explode("~", $_SERVER['REQUEST_URI'], 2);
如果您不确定该值是否存在,则可能需要提供默认值:
list(, $visitlink) = explode("~", $_SERVER['REQUEST_URI'], 2) + array(1 => NULL);
^^^^^^^^^^^^^^^^^^^
这使用了array union operator。
或者:你在这里有一个简单的模式,在第一个~
之后取出所有内容:
sscanf($_SERVER['REQUEST_URI'], "%*[^~]~%s", $data);