PHP中的字符串分解
我有以下几段PHP代码 最后,我想把迈克尔26岁的数据存储在$str1变量中,PHP中的字符串分解,php,html,arrays,string,explode,Php,Html,Arrays,String,Explode,我有以下几段PHP代码 最后,我想把迈克尔26岁的数据存储在$str1变量中,他喜欢绿色汽车。和白色足球以及红色棒棒糖和黄色太阳$str2变量中 因此,基本上第一段中的所有内容都在$str1中,之后的所有内容都在$str2中 <?php $str = "<p>Michael is 26</p><p>He likes green cars.</p><p>And white footballs</p><p&g
他喜欢绿色汽车。和白色足球以及红色棒棒糖和黄色太阳$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) ?
?>
我如何做到这一点
非常感谢您的指点。使用带分隔符的分解:
explode('</p>', $str, 2);
分解(“”,$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>'
)
数组(
迈克尔是26岁,
他喜欢绿色的汽车、白色的足球、红色的棒棒糖和黄色的太阳
)
那么你所要做的就是:
$strArray = explode('</p>', $str, 2);
$str1 = $strArray[0] . '</p> ';
$str2 = $strArray[1];
echo $str1.$str2; //will output the original string again
$strArray=explode(“”,$str,2);
$str1=$strArray[0]。' ",;
$str2=$strArray[1];
echo$str1.$str2//将再次输出原始字符串
此处不需要分解()。简单的字符串操作(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>
$str=“迈克尔26岁他喜欢绿色汽车。和白色足球和红色棒棒糖和黄色太阳”;
$str1=substr($str,0,strpos($str,“”)+strlen(“”);
$str2=substr($str,strpos($str,“”)+strlen(“”);
echo$str1;
//迈克尔26岁了
echo$str2;
//他喜欢绿色的汽车、白色的足球、红色的棒棒糖和黄色的太阳
使用您的代码,将其追加应该可以完成这项工作
unset($strArray[0]);
$str2 = implode('</p>', $strArray);
unset($strArray[0]);
$str2=内爆(“”,$strArray);
您可以使用它,而不像explode
它只允许查看拆分的位置。它还支持一个限制:
list($str1, $str2) = preg_split('~(?<=</p>)~', $str, 2);
list($str1,$str2)=preg_split(“~(substr()
和strpos()
可能会慢一些,如果使用explode()
他可以更容易地达到相同的结果,为什么要使用它呢?”)小的修改是删除神奇的数字4,并用strlen()替换它.很好的解决方案!!!我更喜欢这个,它做了它想要做的,并且没有爆炸、内爆等…代码很清楚