PHP 中的字符串爆炸

发布于 2024-12-10 17:30:48 字数 751 浏览 0 评论 0原文

我有以下 PHP 代码。

最终,我想将

Michael is 26

存储在 $str1 变量中,并且

他喜欢绿色汽车.

还有白色足球

还有红色$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) ?
?>

我该如何实现这一目标?

非常感谢您的指点。

I have the following bit of PHP code.

Ultimately, I'd like to store <p>Michael is 26</p> in the $str1 variable and <p>He likes green cars.</p><p>And white footballs</p><p>And red lollies</p><p>And yellow suns</p> in the $str2 variable.

So basically everything in the first paragraph goes in $str1 and everything thereafter goes in $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) ?
?>

How do I achieve this?

Many thanks for any pointers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

暮色兮凉城 2024-12-17 17:30:48

使用带有分隔符的 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

Use explode with a delimiter:

 explode('</p>', $str, 2);

This will return:

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>' 
)

So then all you have to do is:

$strArray = explode('</p>', $str, 2);
$str1 = $strArray[0] . '</p> ';
$str2 = $strArray[1];
echo $str1.$str2; //will output the original string again
老娘不死你永远是小三 2024-12-17 17:30:48

这里不需要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>

No explode() is necessary here. Simple string operations (strpos(), substr())will do fine:

$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>
久伴你 2024-12-17 17:30:48

使用你的代码,附加这个应该可以完成工作

unset($strArray[0]);

$str2 = implode('</p>', $strArray);

using your code, appending this should do the job

unset($strArray[0]);

$str2 = implode('</p>', $strArray);
携余温的黄昏 2024-12-17 17:30:48

您可以使用preg_split文档 为此,与 explode 不同,它允许只查看拆分位置。它也支持限制:

list($str1, $str2) = preg_split('~(?<=</p>)~', $str, 2);

演示

You can use preg_splitDocs for this, unlike explode it allows to just look where to split. And it supports a limit as well:

list($str1, $str2) = preg_split('~(?<=</p>)~', $str, 2);

Demo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文