获取博客文章第一段中的字符串

发布于 2024-11-16 20:35:33 字数 269 浏览 0 评论 0原文

想象一下我的字符串是

$str = "<p>paragraph 1</p><p>paragraph 2</p><p>paragraph 3</p>";

,我想得到......

$firstParagraph = "paragraph 1"

最好的方法是什么?

是否可以轻松地将每个段落拆分为一个数组?

Imagine my string is

$str = "<p>paragraph 1</p><p>paragraph 2</p><p>paragraph 3</p>";

and I want to get...

$firstParagraph = "paragraph 1"

What would be the best way of doing that?

Is it possible to split each paragraph into an array easily?

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

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

发布评论

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

评论(3

魔法唧唧 2024-11-23 20:35:33
$dom = new DOMDocument();
$dom->loadHTML($str);

$xp = new DOMXPath($dom);

$res = $xp->query('//p');

$firstParagraph = $res[0]->nodeValue;
$dom = new DOMDocument();
$dom->loadHTML($str);

$xp = new DOMXPath($dom);

$res = $xp->query('//p');

$firstParagraph = $res[0]->nodeValue;
相权↑美人 2024-11-23 20:35:33

我正在快速输入此内容,但不会:

$str = "<p>paragraph 1</p><p>paragraph 2</p><p>paragraph 3</p>";
preg_match('/<p>(.*?)<\/p>/i', $str, $paragraphs);
echo $paragraphs[0]; // Paragraph 1

比其他解决方案更有效地工作吗?

I'm typing this up quickly, but wouldn't:

$str = "<p>paragraph 1</p><p>paragraph 2</p><p>paragraph 3</p>";
preg_match('/<p>(.*?)<\/p>/i', $str, $paragraphs);
echo $paragraphs[0]; // Paragraph 1

work more efficiently than these other solutions?

友欢 2024-11-23 20:35:33

你问的是两件事。但是,

$array = preg_split('#</p><p>|<p>|</p>#i', $string, -1, PREG_SPLIT_NO_EMPTY)

您可以将段落拆分为一个数组,$string 是带有段落的字符串。

要仅获取第一段,请使用:

preg_match('#^<p>(.*?)</p>#i', $string, $matches)

$matches 将包含您想要的内容。与之前的正则表达式相比,这甚至具有更高的内存效率和更快的速度。如果我见过的话,我不应该提及使用面向对象的 xml 解析器的解决方案完全是大材小用。

You are asking two things. But with

$array = preg_split('#</p><p>|<p>|</p>#i', $string, -1, PREG_SPLIT_NO_EMPTY)

you can split the paragraphs into an array, $string being your string with the paragraphs.

To get the first paragraph only, use:

preg_match('#^<p>(.*?)</p>#i', $string, $matches)

$matches will contain what you want. And this is even more memory efficient and quicker than the previous regex. I shouldn't have to mention that solutions with object oriented xml parsers are total overkills if I've ever seen one.

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