Php修剪特定字符的字符串

and*_*rew 10 php string

是否有一个PHP字符串函数来修剪特定字符后的字符串.我在php.net网站上看​​了一下并进行了谷歌搜索但找不到任何东西.我能想到的唯一解决方案是爆炸,然后抓住阵列的第一部分,但这不是最优雅的解决方案.

例如

$string = "/gallery/image?a=b";
$string = imaginary_function($string,'?');
echo $string; //echoes "/gallery/image"
Run Code Online (Sandbox Code Playgroud)

有谁知道php字符串操作函数的好的备忘单?谢谢

jhe*_*ngs 23

也许是这样的:

$string = substr($string, 0, strpos($string, '?'));
Run Code Online (Sandbox Code Playgroud)

请注意,这不是很强大(即没有错误检查等),但它可以帮助您解决问题.


Rob*_*Rob 21

你可以使用爆炸:

$string = "/gallery/image?a=b";
list($url,$querystring) = explode('?', $string, 2);
Run Code Online (Sandbox Code Playgroud)


Gum*_*mbo 10

试试strtok:

$token = strtok($str, '?');
Run Code Online (Sandbox Code Playgroud)

请注意,第二个参数是分隔符列表,而不是分隔符字符串.


Dou*_*ner 5

strstrstristr一个字符串函数找到第一个出现并返回后它的一切(包括搜索字符串).但是你提供它true作为第三个参数,它会带回搜索字符串前面的所有内容.

$string = strstr( $string, '?', true); # Returns /gallery/image
Run Code Online (Sandbox Code Playgroud)

如果找不到匹配则会返回,FALSE因此您可以编写如下错误检查:

if( $path = strstr( $string, '?', true) ){
   # Do something
}
Run Code Online (Sandbox Code Playgroud)