str_get_html is not loading a valid html string

前端 未结 3 652
灰色年华
灰色年华 2021-02-07 21:13

I receive an html string using curl:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html_string = curl_exec($ch);

When I echo it

3条回答
  •  别那么骄傲
    2021-02-07 21:48

    You curl link seems have many element(large file).

    And I am parsing a string(file) as large as your link and encounter this problem.

    After I saw the source code, I found the problem. It works for me !


    I found that simple_html_dom.php have limit the size you read.

    // 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, $lowercase, $stripRN);
               return $dom;
      }
    

    you must to change the default size below (It's on the top of the simple_html_dom.php)
    maybe change to 100000000 ? it's up to you.

    define('MAX_FILE_SIZE', 6000000); 

提交回复
热议问题