我的字符串如下:
$str = '/test/test1/test2/test3/testupload/directory/';
现在我想获取一些特定的字符串,所以尝试了:
strstr($str, 'test3');
但我想在针后获取价值?我该怎么办?
感谢。
答案 0 :(得分:2)
$str = '/test/test1/test2/test3/testupload/directory/';
$new_str = strstr($str, 'test3');
// Use this to get string after test3
$new_str = str_replace('test3', '', $new_str);
// $new_str value will be '/testupload/directory/'
答案 1 :(得分:0)
您可以找到test3
的索引,然后继续:
<?php
$str = '/test/test1/test2/test3/testupload/directory/';
$find = 'test3'; // Change it to whatever you want to find.
$index = strpos($str, $find) + strlen($find);
echo substr($str, $index); // Output: /testupload/directory/
?>
或者使用test3
爆炸()数组并查找最后一个元素。
<?php
$str = '/test/test1/test2/test3/testupload/directory/';
$find = 'test3'; // Change it to whatever you want to find.
$temp = explode($find, $str);
echo end(explode($find, $str));
?>
答案 2 :(得分:0)
尝试
<?php
$str = '/test/test1/test2/test3/testupload/directory/';
$position = stripos($str, "test3");
if ($position !== false) {
$position += strlen("test3");
$newStr = substr($str, $position);
echo "$newStr";
} else {
echo "String not found";
}
?>
答案 3 :(得分:0)
也可以使用preg_match()
完成preg_match("/test3\/(.*)/", $str, $output);
Echo $output[1];
使用preg_match,它是一个单行工作,可以获得你想要的部分
该模式会在之后搜索test3
和/
,但由于/
需要转义,因此\/
。
然后(.*)
意味着匹配所有内容直到字符串结尾
输出[0]将是完全匹配&#34; test3 / testupload ...&#34;。
输出[1]只是你想要的部分&#34; testupload /... 34;。
答案 4 :(得分:0)
为什么不构建辅助函数。
这是我之前制作的(完全不是艺术攻击参考)。
/**
* Return string after needle if it exists.
*
* @param string $str
* @param mixed $needle
* @param bool $last_occurence
* @return string
*/
function str_after($str, $needle, $last_occurence = false)
{
$pos = strpos($str, $needle);
if ($pos === false) return $str;
return ($last_occurence === false)
? substr($str, $pos + strlen($needle))
: substr($str, strrpos($str, $needle) + 1);
}
您可能已经注意到,此功能为您提供了在给定针头的第一次或最后一次出现后返回内容的选项。所以这里有几个用例:
$animals = 'Animals;cat,dog,fish,bird.';
echo str_after($animals, ','); // dog,fish,bird.
echo str_after($animals, ',', true); // bird.
我倾向于创建一个包含与此类似功能的全局helpers.php
文件,我建议你这样做 - 它使事情变得如此简单。