使用起点和终点截断为字符串的函数

时间:2011-09-07 14:09:39

标签: php

我需要选择字符串的一部分。我知道字符串的开始和结束点(使用strpos找到)但我不知道如何选择字符串的这一部分.... substr将无法工作,因为字符串可以是不同的长度。我需要能够通过在此字符处开头并以此字符结束来截断字符串。

我确信有办法做到这一点,但似乎无法在手册中找到它

5 个答案:

答案 0 :(得分:1)

http://php.net/manual/en/function.substr.php

substr完美地做到这一点,它需要开始位置和长度。

用(结束位置 - 开始位置)计算长度

答案 1 :(得分:1)

你可以用这个找到字符串的长度: http://php.net/manual/en/function.strlen.php

答案 2 :(得分:1)

http://www.php.net/manual/en/function.substr.php

substr - 返回字符串的一部分 string substr(string $ string,int $ start [,int $ length])

返回由start和length参数指定的字符串部分。

答案 3 :(得分:1)

substr()strpos();

中的变量一起使用
$string = 'My sub string in a string';
$substring = 'sub string';
echo substr( $string, strpos( $string, $substring ), strlen( $substring ) );
// echoes "sub string";

有点愚蠢的例子,但你明白了这一点:)

答案 4 :(得分:1)

如前所述,substr非常好。

我写这个答案只是为了给你提供一些例子(因为看起来你有点困惑)

$string = 'This string is too long and I want only a portion of it where I know the start and end position of the portion';

// now if you want to get everything between "too long" and "position" and you know the position for start and end which in this case are:
$start = 15; // 16th character
$end = 95; // 96th character

// from inside out first substr cuts the end of the string at requred character, the other substr cuts the beginning of the string
// resulting in portion beginning at 16th character and ending at 96th character.
$portion = substr(substr($string, 0, -(strlen($string) - $end)), $start);

var_dump($portion);

希望能帮到你:)