2016-04-27 81 views
2

我有串象下面这样:如何在PHP中获取字符串后的字符串?

$str = '/test/test1/test2/test3/testupload/directory/'; 

现在我要取这么尝试了一些特定的字符串:

strstr($str, 'test3'); 

但我想针后获取价值?我能怎么做?

谢谢。

+5

可能重复[获取文本后针?](http://stackoverflow.com/questions/2216710/get-text-after-needle) – Dhiraj

+0

为什么不拆分字符串,然后挑选最后的数组值? – Abhishek

+0

@BhumiShah在这里没有正确或有用的答案吗? – Andreas

回答

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/' 
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)); 
?> 
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"; 
} 
?> 
0

也可以用的preg_match()

preg_match("/test3\/(.*)/", $str, $output); 
Echo $output[1]; 

用的preg_match做它是一条线的工作得到你想要的部分。
该模式搜索test3/后,但/需要转义\/
然后(.*)表示匹配所有内容直到字符串结束。
输出[0]将完全匹配“test3/testupload ...”。
输出[1]只是您想要“testupload/...”的部分。

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文件,其中包含与此类似的功能,我建议你做同样的 - 它使事情变得更轻松。

相关问题