0

我之前已经将一个字符串保存到 .txt 中,如下所示:

$text = "<div class='highlight'><div><p>".$date.".</p> <h1> ".$heading."</h1>".$textbox."</div></div>";

我现在想提取$date$heading$textbox从 txtfile 回到变量,以进行编辑,但我不知道如何做到这一点。

谁能帮我?

4

2 回答 2

1

您需要使用 DOM 解析器来解析 HTML。

http://simplehtmldom.sourceforge.net/

从上述网站发布的代码。

$html = file_get_html('http://www.google.com/');

// 查找所有图像
foreach($html->find('img') as $element)
       回声 $element->src 。' 
'; // 查找所有链接 foreach($html->find('a') as $element) 回声 $element->href 。'
';

或 PHP 的 DOM

$str = file_get_contents("a.txt");
   $DOM = 新的 DOMDocument;
   $DOM->loadHTML($str);

//获取所有H1 $items = $DOM->getElementsByTagName('h1');

//显示所有H1文本 for ($i = 0; $i < $items->length; $i++) 回声 $items->item($i)->nodeValue 。"
";

于 2012-05-30T11:17:09.037 回答
0

[编辑-阅读评论后,似乎正则表达式不是要走的路。请尝试使用 SimpleHtmlDom 解析器]

$html = new simple_html_dom();
$html->load($yourstring);
$date = $html->find('p')->innertext;
$heading = $html->find('h1')->innertext;
$textbox = $html->find('div div')->innertext; 

您可以在此处找到 Simple Html Dom 的文档 - http://simplehtmldom.sourceforge.net/manual.htm

一种效率较低的方法 - preg_match('#

(。)。(。)。(.*)#', $text, $matches); $date = $matches[0]; $heading = $matches[1]; $文本框 = $matches[2];

于 2012-05-30T11:16:35.243 回答