如何在PHP中获取针后字符串?

如何在PHP中获取针后字符串?,php,Php,我有下面这样的字符串: $str = '/test/test1/test2/test3/testupload/directory/'; 现在我想获取一些特定字符串,因此尝试: strstr($str, 'test3'); 但我想在打完针后取值?我该怎么办 谢谢。您可以找到test3的索引,然后继续: $str = '/test/test1/test2/test3/testupload/directory/'; $new_str = strstr($str, 'test3');

我有下面这样的字符串:

$str = '/test/test1/test2/test3/testupload/directory/';
现在我想获取一些特定字符串,因此尝试:

strstr($str, 'test3');
但我想在打完针后取值?我该怎么办


谢谢。

您可以找到
test3
的索引,然后继续:

$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/'
<?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/
?>
试一试


也可以使用preg_match()完成

使用preg_match,您只需一行即可获得所需零件。
模式搜索
test3
和之后的
/
,但由于
/
需要转义,因此存在
\/

然后,
(.*)
表示匹配所有内容,直到字符串结束。
输出[0]将与“test3/testupload…”完全匹配。

输出[1]只是您想要“testupload/…”的部分。为什么不构造一个helper函数呢

这是我之前做的一个(完全不是艺术攻击参考)

您可能已经注意到,此函数为您提供了在给定指针第一次或最后一次出现后返回内容的选项。这里有几个用例:

$animals = 'Animals;cat,dog,fish,bird.';

echo str_after($animals, ','); // dog,fish,bird.

echo str_after($animals, ',', true); // bird.

我倾向于创建一个全局
helpers.php
文件,其中包含类似的函数,我建议您也这样做-这样做会让事情变得更简单。

为什么不拆分字符串,然后选择数组的最后一个值呢?这里的答案都不正确,也没有帮助吗?
<?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";
}
?>
preg_match("/test3\/(.*)/", $str, $output);
Echo $output[1];
/**
 * 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.