删除PHP中的字符后的所有内容

Ani*_*ish 13 php

可以告诉我如何删除字符后?在PHP中.我有一个字符串测试?= new我需要从该字符串中删除字符以及=.

Rok*_*alj 27

最短的一个:

echo strtok('test?=new', '?');
Run Code Online (Sandbox Code Playgroud)

如果你想保留问号,解决方案几乎是一样的:

echo strtok('test?=new', '?').'?';
Run Code Online (Sandbox Code Playgroud)


sum*_*mea 5

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)