php – str_get_html没有加载有效的html字符串

前端之家收集整理的这篇文章主要介绍了php – str_get_html没有加载有效的html字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用curl收到一个html字符串:
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$html_string = curl_exec($ch);

当我回应它时,我看到了一个非常好的HTML,因为我需要解析我的解析需求.
但是,当尝试将此字符串发送到HTML DOM PARSER方法str_get_html($html_string)时,它不会上传它(从方法调用返回false).

我尝试将其保存到文件并在文件上使用file_get_html打开,但同样的事情发生了.

这可能是什么原因?正如我所说,当我回应它时,html看起来非常好.

非常感谢.

代码本身:

$html = file_get_html("http://www.bgu.co.il/tremp.aspx");
$v = $html->find('input[id=__VIEWSTATE]');
$viewState = $v[0]->attr['value'];
$e = $html->find('input=[id=__EVENTVALIDATION]');
$event = $e[0]->attr['value'];

$html->clear(); 
unset($html);

$body = " A_STRING_THAT_CONTAINS_SOME_DATA " 

$ch = curl_init("http://www.bgu.co.il/tremp.aspx");
curl_setopt($ch,CURLOPT_POSTFIELDS,$body);
curl_setopt($ch,true);

$html_string = curl_exec($ch);

$file_handle = fopen("file.txt","w");
fwrite($file_handle,$html_string);
fclose($file_handle);

curl_close($ch);

$html = str_get_html($html_string);
你的卷曲链接似乎有很多元素(大文件).

我正在解析与您的链接一样大的字符串(文件)并遇到此问题.

在看到源代码后,我发现了问题.这个对我有用 !

我发现simple_html_dom.PHP限制了你读的大小.

// get html dom from string
  function str_get_html($str,$lowercase=true,$forceTagsClosed=true,$target_charset = DEFAULT_TARGET_CHARSET,$stripRN=true,$defaultBRText=DEFAULT_B     R_TEXT,$defaultSpanText=DEFAULT_SPAN_TEXT)
  {
           $dom = new simple_html_dom(null,$lowercase,$forceTagsClosed,$target_charset,$stripRN,$defaultBRText,$defaultSpanText);
           if (empty($str) || strlen($str) > MAX_FILE_SIZE)
           {
                   $dom->clear();
                   return false;
           }
           $dom->load($str,$stripRN);
           return $dom;
  }

你必须改变下面的默认大小(它位于simple_html_dom.PHP的顶部)
也许变成1亿?由你决定.

define('MAX_FILE_SIZE',6000000); 

猜你在找的PHP相关文章