我使用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);