मैंने 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 स्टैक ट्रेस में बूलियन पर किसी सदस्य फ़ंक्शन को ढूंढें() पर कॉल करें: #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 {मुख्य} लाइन में /home/xxx/public_html/wp-content/plugins/farbkarte/index.php में फेंका गया 67

मुझे नहीं पता कि कैसे आगे बढ़ना है, और कुछ सहायता प्राप्त करना अच्छा लगेगा! वर्डप्रेस के बाहर, यह पूरी तरह से काम करता है।

मुझे आशा है कि मैंने बहुत अधिक जानकारी नहीं हटाई है।

अग्रिम में धन्यवाद!

0
Kristian 28 नवम्बर 2018, 02:12

2 जवाब

सबसे बढ़िया उत्तर

मैं file_get_contents(): स्ट्रीम मांग का समर्थन नहीं करती / इसके बारे में PHP व्यवहार कब बदला गया था?

simple_html_dom.php की लाइन 75 पर:

$ सामग्री = file_get_contents ($ url, $ use_include_path, $ संदर्भ, $ ऑफ़सेट); मैंने $offset का संदर्भ हटा दिया:

$ सामग्री = file_get_contents ($ url, $ use_include_path, $ संदर्भ); नहीं, मेरा पेज ठीक काम करता है। किसी और चीज की जिम्मेदारी नहीं लेने से वह टूट जाता है! :)

0
Kristian 28 नवम्बर 2018, 14:57

मेरी पिछली टिप्पणी और कुछ और संकेत यहां ले जा रहे हैं।

त्रुटि रिपोर्टिंग को सक्षम करने के लिए एक अच्छी शुरुआत होगी

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

वहां से शुरू करें .. मुझे संदेह है कि कुछ शामिल हैं गायब हैं और आपको डब्लूपी में डीबी तक पहुंचने के लिए वैश्विक $ डीबी ऑब्जेक्ट का उपयोग करना होगा।

आपकी त्रुटियों को देखते हुए - जाहिरा तौर पर, $html वैरिएबल बूलियन है और htmlDOM ऑब्जेक्ट नहीं है। इस के अनुसार, file_get_html() झूठी वापसी करता है, यदि प्राप्त की गई सामग्री खाली है या MAX_FILE_SIZE से अधिक है।

जांचें कि क्या आप जिस URL को पुनर्प्राप्त कर रहे हैं वह वास्तव में मौजूद है, आपके पास उस तक पहुंचने के अधिकार हैं, और MAX_FILE_SIZE सही ढंग से सेट है

0
Eriks Klotins 28 नवम्बर 2018, 13:25