我的问题是如何从字符获取子字符串,直到字符在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