删除特定字符后面的所有字符
任何人都可以告诉我如何在php中删除字符。我有一个字符串,我需要从字符串的末尾删除字符。?
test?q=new
?
任何人都可以告诉我如何在php中删除字符。我有一个字符串,我需要从字符串的末尾删除字符。?
test?q=new
?
最短的一个:
echo strtok('test?=new', '?');
如果你想保留问号,解决方案几乎是一样的:
echo strtok('test?=new', '?').'?';
您也可以尝试使用: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
)