采取一个大的文本的一部分
比方说,我们有一个字符串($文本)采取一个大的文本的一部分
I will help you out, if <b>you see this message and never forget</b> blah blah blah
我想利用文字从“<b>
”到“</b>
”成一个新的字符串($文本2) 如何这可以做到吗?
我感谢任何帮助,我可以得到。谢谢!
编辑: 我想采取这样的代码。如果您要查找的行为
<embed type="application/x-shockwave-flash"></embed>
如果你只是想在第一场比赛,不想匹配类似<b class=">
,下面的工作:
更新的评论:
$text = "I will help you out, if <b>you see this message and never forget</b> blah blah blah";
$matches = array();
preg_match('@<b>.*?</b>@s', $text, $matches);
if ($matches) {
$text2 = $matches[0];
// Do something with $text2
}
else {
// The string wasn't found, so do something else.
}
但更多的东西复杂的,你真的应该把它解析为每个Marc B.的评论的DOM。
strip_tags($text, '<b>');
将只提取<b> </b>
之间的部分字符串。
不幸的是,这将返回字符串中不属于php或html标记(或NUL字符)的所有文本。他正在寻找的只是获取的内容 – adam 2011-04-22 19:28:56
使用这种糟糕的美富:http://fr2.php.net/domdocument
$dom = new DOMDocument();
$dom->loadHTML($text);
$xpath = new DOMXpath($dom);
$nodes = $xpath->query('//b');
在这里,您既可以通过每一个回路,或者如果你知道只有一个,只要抓住价值。
$text1 = $nodes->item(0)->nodeValue;
值得注意的是,该文本需要是有效的dom内容,否则xpath会对您,您的字符串,您的程序,您的用户和您的虚拟主机生气 – adam 2011-04-22 19:31:41
亚当@我得到这个错误“调用未定义的函数loadHTML()”感谢您的帮助。这是否也适用于嵌入代码? – Muazam 2011-04-22 19:35:25
哈哈,我的坏Muazam。我是白天的Java人,这就是为什么我写$ dom.loadHTML,当它应该是$ DOM-> loadHTML。你应该明确地使用这种方法来选择一个,因为它的全部OO和眼睛上的简短易用 – adam 2011-04-22 23:36:18
[从字符串中提取DOM元素的可能的重复,在PHP中。](http://*.com/questions/5126967/extract-dom-elements-from-string-in-php) – 2011-04-22 19:19:12
我的答案有一个使用DOMDocument的完整示例 – adam 2011-04-22 19:29:54