我有以下一些PHP代码。
最后,我想将<p>Michael is 26</p>
存储在 $ str1 变量中,将<p>He likes green cars.</p><p>And white footballs</p><p>And red lollies</p><p>And yellow suns</p>
存储在 $ str2 变量中。
所以基本上第一段中的所有内容都在 $ str1 中,所有内容此后都在 $ str2 中。
<?php
$str = "<p>Michael is 26</p><p>He likes green cars.</p><p>And white footballs</p><p>And red lollies</p><p>And yellow suns</p>";
$strArray = explode('</p>', $str);
$str1 = $strArray[0] . '</p> ';
echo $str1;
// variable to export remainder of string (minus the $str1 value) ?
?>
我如何实现这一目标?
非常感谢任何指示。
答案 0 :(得分:8)
将explode
与分隔符一起使用:
explode('</p>', $str, 2);
这将返回:
array (
0 => '<p>Michael is 26',
1 => '<p>He likes green cars.</p><p>And white footballs</p><p>And red lollies</p><p>And yellow suns</p>'
)
那么你所要做的就是:
$strArray = explode('</p>', $str, 2);
$str1 = $strArray[0] . '</p> ';
$str2 = $strArray[1];
echo $str1.$str2; //will output the original string again
答案 1 :(得分:3)
此处不需要explode()
。简单的字符串操作(strpos(), substr()
)就可以了:
$str = "<p>Michael is 26</p><p>He likes green cars.</p><p>And white footballs</p><p>And red lollies</p><p>And yellow suns</p>";
$str1 = substr($str, 0, strpos($str, "</p>") + strlen("</p>"));
$str2 = substr($str, strpos($str, "</p>") + strlen("</p>"));
echo $str1;
// <p>Michael is 26</p>
echo $str2;
// <p>He likes green cars.</p><p>And white footballs</p><p>And red lollies</p><p>And yellow suns</p>
答案 2 :(得分:0)
使用你的代码,附加这个应该做的工作
unset($strArray[0]);
$str2 = implode('</p>', $strArray);
答案 3 :(得分:0)
您可以使用preg_split
Docs,与explode
不同,它只允许查看拆分位置。它也支持限制:
list($str1, $str2) = preg_split('~(?<=</p>)~', $str, 2);