PHP获取前几个字符并从字符串中删除

时间:2011-10-30 19:15:59

标签: php

有没有人知道如何从字符串中删除前几个字符并在PHP中删除它们。

与字符串“str_filename”类似,我需要删除“str_”并保存“文件名”。

但它必须删除尽可能多的字符才能达到“_”。

换句话说,我需要删除所有字符,直到并包括字符串中的第一个“_”。

3 个答案:

答案 0 :(得分:5)

你可以这样做:

if (strpos($string, '_') !== false)
   $string = substr($string, strpos($string, '_') + 1);

它的工作原理如您所见:http://codepad.org/g12ENLGY

注意if非常有用,因为您的字符串不能包含'_'字符。

答案 1 :(得分:1)

你可以使用类似的东西:

$files = explode("_", $filename);
echo $files[1];

因此,这将在_字符上拆分字符串,然后回显第二部分(在下划线之后)。

这假设只有一个下划线。

请参阅http://www.php.net/manual/en/function.explode.php

答案 2 :(得分:1)

除了使用explodesubstr之外的其他解决方案,您可以使用正则表达式来解决它:

^(?:[^_]*_)(.*)$

以下是使用它的示例:

$str = "str_filename";
$pattern = "/^(?:[^_]*_)(.*)$/";
preg_match($pattern, $str, $matches);

echo $matches[1]; //prints "filename"