首页 > 解决方案 > Wordpress simple_html_dom.php 管理页面

问题描述

我已经使用 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!!!" 结果:“我在这里!!!”

在第一次 foreach 之后: echo "I'm here!!!" 结果:没有

$html = file_get_html($url); 之后: echo "Result: ".$html; 结果:什么都没有,甚至没有显示“结果”

错误信息:

致命错误:未捕获错误:调用 /home/xxx/public_html/wp-content/plugins/Farbkarte/index.php:67 中布尔值的成员函数 find() 堆栈跟踪:#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} 在第 67 行的 /home/xxx/public_html/wp-content/plugins/Farbkarte/index.php 中抛出

我不知道如何进行,很想得到一些帮助!在 wordpress 之外,它可以完美运行。

我希望我没有删除太多信息。

提前致谢!

标签: phpwordpresssimple-html-dom

解决方案


将我之前的评论和更多提示移到此处。

一个好的开始是启用错误报告

error_reporting(E_ALL);
ini_set('display_errors', 1);

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

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

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


推荐阅读