SimpleHTMLDom returns 打印输出时出现 500 错误
SimpleHTMLDom returns 500 error on printing output
在尝试打印简单htmldom 的输出时,它给了我 500 错误。我尝试了以下方法,但错误相同。
方法一
$html = file_get_html("http://www.google.com");
print_r($html);
在阅读了对其他问题的回复后,我检查了 allow_url_fopen 是否正常工作,确实如此。
方法二
$html = file_get_contents("http://www.google.com");
print_r($html);
这是有效的,但是当我用下面的代码解析它时,再次出现 500 错误。
$object = new simple_html_dom();
$object->load($html);
var_dump($object);
方法三
作为最后的手段,我认为我应该尝试使用 curl 然后进行解析。所以我使用了 curl 并确保 curl 正常工作,我在它正常工作时打印了输出。但是当我再次解析为简单htmldom时,打印输出时出现 500 错误。
[Sat Sep 08 21:26:19.456961 2018] [:error] [pid 703804] ModSecurity:
Output filter: Response body too large (over limit of 404800001, total
not specified).
我将限制提高了将近 100 倍,但仍然出现同样的错误。
错误消息表明 ModSecurity 正在抱怨响应主体太大。这并不意味着使用简单 HTML DOM 库加载 HTML 有问题,它与您的代码生成的响应大小有关(print_r
或 var_dump
零件)。我想这是因为您正在加载的 HTML 结构需要大量嵌套对象来表示 DOM 树,因此当您尝试使用 print_r
或 [= 输出完整结构时12=] 响应变得太大。
您可以通过简单地打印页面的普通 HTML 来验证 HTML 是否已加载和解析(使用 print
而不是 print_r
来打印 simple_html_dom对象):
$html = file_get_html("http://www.google.com");
print($html);
你会看到 HTML 被正确检索,你可以使用 $html
对象来操作 DOM 你希望使用 simple_html_dom 对象的方式.
如果您想更改 ModSecurity 的输出限制以便生成更大的响应,请查看此问题:Mod Security response/request body size?
在尝试打印简单htmldom 的输出时,它给了我 500 错误。我尝试了以下方法,但错误相同。
方法一
$html = file_get_html("http://www.google.com");
print_r($html);
在阅读了对其他问题的回复后,我检查了 allow_url_fopen 是否正常工作,确实如此。
方法二
$html = file_get_contents("http://www.google.com");
print_r($html);
这是有效的,但是当我用下面的代码解析它时,再次出现 500 错误。
$object = new simple_html_dom();
$object->load($html);
var_dump($object);
方法三
作为最后的手段,我认为我应该尝试使用 curl 然后进行解析。所以我使用了 curl 并确保 curl 正常工作,我在它正常工作时打印了输出。但是当我再次解析为简单htmldom时,打印输出时出现 500 错误。
[Sat Sep 08 21:26:19.456961 2018] [:error] [pid 703804] ModSecurity: Output filter: Response body too large (over limit of 404800001, total not specified).
我将限制提高了将近 100 倍,但仍然出现同样的错误。
错误消息表明 ModSecurity 正在抱怨响应主体太大。这并不意味着使用简单 HTML DOM 库加载 HTML 有问题,它与您的代码生成的响应大小有关(print_r
或 var_dump
零件)。我想这是因为您正在加载的 HTML 结构需要大量嵌套对象来表示 DOM 树,因此当您尝试使用 print_r
或 [= 输出完整结构时12=] 响应变得太大。
您可以通过简单地打印页面的普通 HTML 来验证 HTML 是否已加载和解析(使用 print
而不是 print_r
来打印 simple_html_dom对象):
$html = file_get_html("http://www.google.com");
print($html);
你会看到 HTML 被正确检索,你可以使用 $html
对象来操作 DOM 你希望使用 simple_html_dom 对象的方式.
如果您想更改 ModSecurity 的输出限制以便生成更大的响应,请查看此问题:Mod Security response/request body size?