WordPress的simple_html_dom.php管理页面

时间:2018-11-27 23:12:44

标签: php wordpress simple-html-dom

我使用file_get_html作为脚本。我现在将其转移到Wordpress网站,但似乎无法正常工作。

只需尝试在管理插件中使用它即可。

以下代码段:

require('includes/simple_html_dom.php');
if (isset($_POST['submit_updateColors'])) {
        $qGetBrands = $mysqli->query("SELECT ... ");
        while ($rowBrands = $qGetBrands->fetch_assoc()) {

            $brandId = $rowBrands['cl_brand_Id'];
            $url =  "https://www.url.com". $rowBrands['cl_brand_url'];
            $html = file_get_html($url);
            $html->find('div[class=col-md-1p5]');

            foreach($html->find('div[class=col-md-1p5]') as $brandColors) {
                foreach ($brandColors->find('h3') as $brandColor) {
                    $p_brandColor = $brandColor->innertext;
                }

                foreach ($brandColors->find('img') as $ColorImg) {
                    $p_ColorImg = $ColorImg->src;
                }                   
                    echo $p_brandColor ." <br />";
                    echo $imgName['basename'] ." <br /> <br />";
            }
        }
    }

开始后: echo "I'm here!!!" 结果:“我在这里!!!”

第一次学习之后: echo "I'm here!!!" 结果:没事

在$ html = file_get_html($ url);之后:: echo "Result: ".$html; 结果:一无所有,甚至没有显示“结果”

错误消息:

  

致命错误:未捕获错误:调用成员函数find()   布尔值   /home/xxx/public_html/wp-content/plugins/Farbkarte/index.php:67堆栈   跟踪:#0 /home/xxx/public_html/wp-includes/class-wp-hook.php(286):   main_init('')#1   /home/xxx/public_html/wp-includes/class-wp-hook.php(310):   WP_Hook-> apply_filters('',数组)#2   /home/xxx/public_html/wp-includes/plugin.php(453):   WP_Hook-> do_action(Array)#3   /home/xxx/public_html/wp-admin/admin.php(224):   do_action('toplevel_page_f ...')#4 {main}抛出   在/home/xxx/public_html/wp-content/plugins/Farbkarte/index.php中   第67

我不知道如何进行,很想获得帮助! 在wordpress外部,它运行完美。

我希望我没有删除过多的信息。

谢谢!

2 个答案:

答案 0 :(得分:0)

在此移动我之前的评论和更多提示。

一个好的开始是使用

启用错误报告
error_reporting(E_ALL);
ini_set('display_errors', 1);

从这里开始。.我怀疑其中有些缺少,您必须使用全局$ db对象来访问WP中的数据库。

查看您的错误-显然,$html变量是布尔值,而不是htmlDOM对象。根据{{​​3}},如果获取的内容为空或超过MAX_FILE_SIZE,则file_get_html()返回false。

检查要检索的URL是否确实存在,是否有权访问它,并且MAX_FILE_SIZE设置正确

答案 1 :(得分:0)

我能够通过查看file_get_contents(): stream does not support seeking / When was PHP behavior about this changed?

解决此问题
  

simple_html_dom.php的第75行:

     

$ contents = file_get_contents($ url,$ use_include_path,$ context,$ offset);   我删除了对$ offset的引用:

     

$ contents = file_get_contents($ url,$ use_include_path,$ context);   我的页面无法正常运行。不承担任何其他责任! :)