2

我已经编写了一个脚本来处理来自 URL 的 html 文件,但是,由于我的廉价主机提供商的 30 年代脚本运行时限制,我不得不更改脚本以将 html 存储为 txt 文件并从本地 WAMP 服务器运行它.

我正在尝试加载每个文件,提取我需要的内容,然后移至下一个文件。

作为源的 URLfile_get_html完美地完成了这项工作(我可以 -> 找到所需的元素)作为源的 Txt 文件file_get_html正在返回一个空白对象。

根据下面帖子中的一些建议,我更改file_get_htmlfile_get_contents创建一个数组,其中包含一个包含文本文件内容的大字符串。

首先,确保file_get_contents可以获取数据。如果可以,file_get_htm我将能够将数据加载到simplehtmlDom

如果file_get_contents返回一个字符串,它确实如此,我将如何“将数据加载到 simplehtml Dom?”

使用 file_get_html 未读取文件

然后我尝试将 string 转换为 object str_get_html,但是,这也不起作用。

include('simple_html_dom.php');
$html = file_get_html('file.txt');
var_dump($html);

返回:object(simple_html_dom)[1] 但没有其他内容或数组。

include('simple_html_dom.php');
$html = file_get_contents('file.txt');
var_dump($html);

回报:string < ! DOCTYPE html PUBLIC.....

问题

谁能给我任何建议?将包含 html 标记的文本文件加载到对象中的最佳方法是什么,以便我可以在其内容上使用 find 方法。我想避免将文件加载到字符串数组中并使用正则表达式来处理内容。

如果使用本地 WAMP 服务器,我需要考虑什么吗?

4

1 回答 1

1

(由 OP 在问题中回答。转换为社区 wiki 答案。请参阅没有答案的问题,但问题已在评论中解决(或在聊天中扩展)

OP写道:

我设法自己解决了这个问题。我确定我已经尝试从字符串中提取 html,doh!

include('simple_html_dom.php');
$html = file_get_contents('file.txt');    
$html = str_get_html($html);
var_dump($html)

返回object(simple_html_dom)[1]包括所有预期的数组等

我没有尝试使用直接从源文件创建 html 对象,而是file_get_html提取了文件内容file_get_contents然后将 str 转换为 html 使用str_get_html它允许我使用简单的 html dom 方法,例如在对象内的属性上查找,例如

$html->find('a');
于 2015-01-29T21:24:32.110 回答