gpt4 book ai didi

php - 为什么 simple_html_dom 不能处理存储在数据库中的 html?

转载 作者:行者123 更新时间:2023-11-30 00:11:40 26 4
gpt4 key购买 nike

我已经使用 simple_html_dom 在 mysql 数据库中存储了几页 html,如下所示。

scraper.php

<?php
require('simple_html_dom.php');
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("dbname") or die(mysql_error());

$url = 'someurl.html'
$html = file_get_html($url);
$html = mysql_real_escape_string($html);
$query = "INSERT INTO tablename (id, file_get_html) VALUES (NULL, '$html')";
mysql_query($query);

?>

然后,如果我回显插入到数据库中的数据,我会得到准确的抓取页面。

但是如果我尝试使用数据库中存储的 html 来抓取页面的 h1 标题,那么它会给我

fatal error :在非对象上调用成员函数 find()

对于这一行

$h1 = trim($html->find('h1', 0)->plaintext);

这里是完整的代码

parse_data.php

<?php
require('simple_html_dom.php');
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("dbname") or die(mysql_error());

$result = mysql_query("select file_get_html from tablename where id = 1");
while ($row = mysql_fetch_assoc($result)){
$html = $row['file_get_html'];
}

$h1 = trim($html->find('h1', 0)->plaintext);
$title = trim($h1);
echo $title ;

?>

我这样做是为了不必每次进行测试时都抓取远程页面。

如何使用 simple_html_dom 和数据库中存储的 html 数据获取 h1 标签内的内容?

最佳答案

还有另一个名为str_get_html的函数,用于加载变量中的字符串html数据并使用simple_html_dom解析它

<?php
require('simple_html_dom.php');
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("dbname") or die(mysql_error());

$result = mysql_query("select file_get_html from tablename where id = 1");
while ($row = mysql_fetch_assoc($result)){
$html = str_get_html($row['file_get_html']);
}

$h1 = trim($html->find('h1', 0)->plaintext);
$title = trim($h1);
echo $title ;

?>

上面的通知,我刚刚替换

file_get_html

str_get_html

关于php - 为什么 simple_html_dom 不能处理存储在数据库中的 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23992597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com