例如,我的网址是http://example.tld/~2g. 我想在~(2g此处)之后获取数据。
我怎样才能做到这一点?我试过了
$visitlink = explode("~", $_SERVER['REQUEST_URI']);
但这不起作用。
我会用这个:
$visitlink = explode("~",$_SERVER['REQUEST_URI'],2);
$aftertilde = $visitlink[1];
list($before, $after) = explode("~", $_SERVER['REQUEST_URI'], 2);
这应该有效。我不确定列表功能是否已弃用。
$visitlink = preg_replace('/^[^~]+~(.*)$/', '$1', $_SERVER['REQUEST_URI']);
RegEx的^[^~]+~部分将匹配所有内容,直到~遇到 a。(.*)将匹配波浪号后的所有内容。$1用于反向引用匹配的内容(.*)。
要充分利用该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);