我试图提取一个子字符串。我需要一些帮助,在PHP做它。
以下是我正在使用的一些示例字符串和我需要的结果:
home/cat1/subcat2 => home
test/cat2 => test
startpage => startpage
我想获取第一个/之前的字符串,但如果没有/,则获取整个字符串。
我试过了,
substr($mystring, 0, strpos($mystring, '/'))
我想它说的是-获取/的位置然后获取从0到那个位置的子字符串。
我不知道如何处理没有/的情况,而不使声明太大。
有没有一种方法来处理这种情况,也不使PHP语句过于复杂?
迟到总比不到好。PHP有一个预定义的函数。这是一个好方法。
strstr
如果你想获得匹配前的部分,只需将before_needle(第3个参数)设置为true
http://php.net/manual/en/function.strstr.php
function not_strtok($string, $delimiter)
{
$buffer = strstr($string, $delimiter, true);
if (false === $buffer) {
return $string;
}
return $buffer;
}
var_dump(
not_strtok('st/art/page', '/')
);