1

例如,我的网址是http://example.tld/~2g. 我想在~2g此处)之后获取数据。

我怎样才能做到这一点?我试过了

$visitlink = explode("~", $_SERVER['REQUEST_URI']);

但这不起作用。

4

4 回答 4

2

我会用这个:

$visitlink = explode("~",$_SERVER['REQUEST_URI'],2);
$aftertilde = $visitlink[1];
于 2012-06-30T15:32:53.127 回答
0

list($before, $after) = explode("~", $_SERVER['REQUEST_URI'], 2);

这应该有效。我不确定列表功能是否已弃用。

于 2012-06-30T16:03:16.303 回答
0
$visitlink = preg_replace('/^[^~]+~(.*)$/', '$1', $_SERVER['REQUEST_URI']);

RegEx的^[^~]+~部分将匹配所有内容,直到~遇到 a。(.*)将匹配波浪号后的所有内容。$1用于反向引用匹配的内容(.*)

于 2012-06-30T15:35:00.130 回答
0

要充分利用该explode函数,请告诉 PHP 只在第一个拆分~(通过告诉2)。该list构造有助于直接分配返回值(Demo):

list(, $visitlink) = explode("~", $_SERVER['REQUEST_URI'], 2);

如果您不确定该值是否存在,您可能需要提供一个默认值:

list(, $visitlink) = explode("~", $_SERVER['REQUEST_URI'], 2) + array(1 => NULL); 
                                                              ^^^^^^^^^^^^^^^^^^^

这利用了数组联合运算符

或者:您在这里有一个简单的模式,在第一个之后采取一切~

sscanf($_SERVER['REQUEST_URI'], "%*[^~]~%s", $data);

这个例子使用了sscanf适合简单字符串搜索/模式的函数,结果在$data这里赋值给变量。演示

于 2012-06-30T21:04:29.783 回答