我的問題是如何從字符獲取子字符串,直到字符在PHP中。字符子字符直到字符php
我已經試過這樣:
<?php
$str = "I love my family";
echo substr($str, 'm', strpos($str, 'y'));
?>
它顯示了以下錯誤:
Message: substr() expects parameter 2 to be long, string given
預期的結果是:我的家庭SUBSTR的
我的問題是如何從字符獲取子字符串,直到字符在PHP中。字符子字符直到字符php
我已經試過這樣:
<?php
$str = "I love my family";
echo substr($str, 'm', strpos($str, 'y'));
?>
它顯示了以下錯誤:
Message: substr() expects parameter 2 to be long, string given
預期的結果是:我的家庭SUBSTR的
這些方針的東西:
$str = "I love my family"; $from_char = 'm'; $to_char = 'y';
// Find position of the $from_char
$from_pos = strpos($str, $from_char);
// Now find position of blank space after $from_pos
$blank_space_pos = strpos($str, ' ', $from_pos);
// Find position of $to_char after $blank_space_pos
$to_pos = strpos($str, $to_char, $blank_space_pos);
// Using $from_pos and $to_pos , get the substring
echo substr($str, $from_pos, $to_pos-$from_pos+1);
還是什麼沿着這些:
$str = "I love my family"; $from_char = 'm'; $to_char = 'y';
$from_pos = strpos($str, $from_char); // strpos finds first occurrence
$to_pos = strrpos($str, $to_char); // strrpos finds last occurrence
echo substr($str, $from_pos, ($to_pos-$from_pos+1));
兩個輸出:
my family
第二個參數()不能是字符串。它應該是整數。 See this。 所以,你必須寫類似
echo substr($str, strpos($str, 'm'), strpos($str, 'y') - strpos($str, 'm') + 1);
(因爲第三個參數是長度,而不是位置)
但這不是解決辦法也一樣,因爲你有「Y」不僅在字符串的結尾(首先'y'在'my'字中,所以這段代碼只返回'my')。所以最好有另一個輸出字符串(不是從'm'到'y',而是從'm'到行尾,例如echo substr($str, strpos($str, 'm'));
)
是的,他知道這一點。 – 2013-09-26 04:56:11
要獲得從「m」開始的所有內容,可以使用strstr()
:
echo strstr('i love my family', 'm'); // my family
你給的例子是不太好,因爲「M」和「Y」(含)之間的字符串是「我」。這且不說,你可以使用strpos()
找到範圍:
$str = 'i love my family';
if (($start = strpos($str, 'm')) !== false && ($stop = strpos($str, 'y', $start)) !== false) {
echo substr($str, $start, $stop - $start + 1);
}
更正代碼:
<?php
$str = "I love my family";
$pos = strpos($str, ' m');
echo substr($str, $pos);
?>
,如果你不是特別使用substr
strstr
可以做的工作。
$str = "I love my family";
echo strstr($str, 'm'); // my family
echo strstr($str, 'm', true); // I love
使用此代碼:
<?php
$str = "I love my family";
echo substr($str, strpos($str, 'm') , strpos($str, 'y')+1);
?>
除非功課(這是罰款),它不可能成爲一個現實世界的例子,這將真正幫助您獲得一個可用的答案。 – 2013-09-26 05:01:48
不是從字符'm'到字符'y'返回'my'?是從字符結束你需要什麼? – bansi