Rok*_*alj 27
最短的一个:
echo strtok('test?=new', '?');
Run Code Online (Sandbox Code Playgroud)
如果你想保留问号,解决方案几乎是一样的:
echo strtok('test?=new', '?').'?';
Run Code Online (Sandbox Code Playgroud)
preg_replace()您也可以随时尝试使用:
$string = 'test?q=new';
$result = preg_replace("/\?.+/", "", $string);
Run Code Online (Sandbox Code Playgroud)
如果出于某种原因,您想保留?结果......您也可以这样做:
$string = 'test?q=new';
$result = preg_replace("/\?.+/", "?", $string);
Run Code Online (Sandbox Code Playgroud)
(或者,您可以使用积极的后向断言,如 @BlueJ774 建议的那样),如下所示:
$result = preg_replace("/(?<=\?).+/", "", $string);
Run Code Online (Sandbox Code Playgroud)
但理想情况下,为了将来的参考,如果您正在使用查询字符串,您可能会希望在某个时候使用parse_str ,如下所示:
$string = 'test?q=new';
parse_str($string, $output);
Run Code Online (Sandbox Code Playgroud)
因为这将为您提供一个数组($output在本例中为 ),用于处理查询字符串的所有部分,如下所示:
Array
(
[test?q] => new
)
Run Code Online (Sandbox Code Playgroud)
但通常情况下...您可能只想在此时处理查询字符串...所以输出会更像这样:
Array
(
[q] => new
)
Run Code Online (Sandbox Code Playgroud)