是否有一个php字符串函数来修剪特定字符后的字符串。我在php.net网站上看了一下并进行了谷歌搜索但找不到任何东西。我能想到的唯一解决方案是爆炸,然后抓住阵列的第一部分,但这不是最优雅的解决方案。
例如
$string = "/gallery/image?a=b";
$string = imaginary_function($string,'?');
echo $string; //echoes "/gallery/image"
有没有人知道php字符串操作函数的好作弊表? 感谢
答案 0 :(得分:23)
也许是这样的:
$string = substr($string, 0, strpos($string, '?'));
请注意,这不是非常强大(即没有错误检查等),但它可以帮助您解决问题。
答案 1 :(得分:21)
您可以使用explode:
$string = "/gallery/image?a=b";
list($url,$querystring) = explode('?', $string, 2);
答案 2 :(得分:10)
答案 3 :(得分:5)
strstr
和stristr
函数查找字符串中的第一个匹配项并返回其后的所有内容(包括搜索字符串)。但是你提供true
作为第三个参数,它会把搜索字符串前的所有内容都带回来。
$string = strstr( $string, '?', true); # Returns /gallery/image
如果未找到匹配项,则会返回FALSE
,因此您可以像这样编写错误检查:
if( $path = strstr( $string, '?', true) ){
# Do something
}
答案 4 :(得分:2)
function imaginary_function($string, $char) {
$index = strpos($char, $needle);
if ($index === false) { return $string };
return substr($string, 0, $index);
}
有一个优秀的正式字符串操作函数列表here。
答案 5 :(得分:1)
虽然纯字符串函数可以提供更好的性能,但这不仅仅是一个字符串;这是一个URI。因此,使用处理此类数据的函数更有意义:
echo parse_url("/gallery/image?a=b", PHP_URL_PATH);
// Output: /gallery/image
答案 6 :(得分:0)
这对于您尝试执行的操作可能有点过分,但如果您想将URL拆分为多个部分,请尝试使用PHP函数parse_url
。这是PHP manual page。
然后,您需要生成数组的“路径”部分。