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

时间:2011-06-22 20:00:24

标签: php

想象一下我的字符串是

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

我希望得到......

$firstParagraph = "paragraph 1"

这样做的最佳方法是什么?

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

3 个答案:

答案 0 :(得分:4)

$dom = new DOMDocument();
$dom->loadHTML($str);

$xp = new DOMXPath($dom);

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

$firstParagraph = $res[0]->nodeValue;

答案 1 :(得分:1)

你问两件事。但是

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

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

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

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

$ matches将包含您想要的内容。这比以前的正则表达式更有效,更快。我不应该提到面向对象的xml解析器的解决方案,如果我见过它,那就是完全过度杀伤。

答案 2 :(得分:1)

我正在快速打字,但不会:

$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

比其他解决方案更有效率?