删除特定字符后面的所有字符

2022-08-31 00:08:42

任何人都可以告诉我如何在php中删除字符。我有一个字符串,我需要从字符串的末尾删除字符。?test?q=new?


答案 1

最短的一个:

echo strtok('test?=new', '?');

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

echo strtok('test?=new', '?').'?';

答案 2

您也可以尝试使用:preg_replace()

$string = 'test?q=new';
$result = preg_replace("/\?.+/", "", $string);

如果出于某种原因,您希望保留在结果中...你也可以这样做:?

$string = 'test?q=new';
$result = preg_replace("/\?.+/", "?", $string);

(或者,你可以使用一个积极的后视断言,正如@BlueJ774建议的那样,)如下所示:

$result = preg_replace("/(?<=\?).+/", "", $string);

但理想情况下,为了将来的参考,如果您正在使用查询字符串,您可能希望在某个时候使用parse_str,如下所示

$string = 'test?q=new';
parse_str($string, $output);

因为这将为您提供一个数组(在本例中为),用于处理查询字符串的所有部分,如下所示:$output

Array
(
    [test?q] => new
)

但通常...此时您可能只想使用查询字符串...所以输出会更像这样:

Array
(
    [q] => new
)

推荐