从.txt中提取文本的多个部分

时间:2012-05-30 11:11:44

标签: php

我已经将字符串保存为.txt,如下所示:

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

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

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

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

http://simplehtmldom.sourceforge.net/

从上述网站发布的代码。

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

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '
'; // Find all links foreach($html->find('a') as $element) echo $element->href . '
';

OR PHP的DOM

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

//get all H1 $items = $DOM->getElementsByTagName('h1');

//display all H1 text for ($i = 0; $i < $items->length; $i++) echo $items->item($i)->nodeValue . "
";

答案 1 :(得分: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];     $ textBox = $ matches [2];