Heim  >  Artikel  >  CMS-Tutorial  >  Was soll ich tun, wenn die Sammelfunktion von phpcms v9 nicht verwendet werden kann?

Was soll ich tun, wenn die Sammelfunktion von phpcms v9 nicht verwendet werden kann?

藏色散人
藏色散人Original
2020-01-10 10:11:012810Durchsuche

Was soll ich tun, wenn die Sammelfunktion von phpcms v9 nicht verwendet werden kann?

Was soll ich tun, wenn die Sammelfunktion von phpcms v9 nicht genutzt werden kann?

Der Hauptgrund, warum Inhalte von https-Websites nicht erfasst werden können, ist, dass https file_get_contents zum Abrufen von Inhalten nicht unterstützt. Sie können daher die Verwendung von Curl in Betracht ziehen, um diese abzurufen. (Curl muss aktiviert sein, Sie können es in den Pfadinformationen überprüfen)

(1) Öffnen Sie phpcmsmodulescollectionclassescollection.class.php

Fügen Sie eine neue Funktion in der Klasse hinzu:

protected static function curl_request($url){   
        if (!function_exists('curl_init')) {   
            throw new Exception('server not install curl');   
        }   
        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_URL,$url); 
        curl_setopt($ch, CURLOPT_HEADER,0); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//禁止调用时就输出获取到的数据 
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false); 
        $result = curl_exec($ch); 
        curl_close($ch); 
        return $result; 
    }

(2) Die Funktion „Funktion finden“ get_htm ändert die Funktion

protected static function get_html($url, &$config) { 
        if (!empty($url) && $html = @file_get_contents($url)) { 
            if ($syscharset != $config['sourcecharset'] && $config['sourcetype'] != 4) { 
                $html = iconv($config['sourcecharset'], CHARSET.'//TRANSLIT//IGNORE', $html); 
            } 
            return $html; 
        } else { 
            return false; 
        } 
    }

in

protected static function get_html($url, &$config) { 
        if(substr(trim($url),0, 5) == "https"){
             $html = @self::curl_request($url);
        }else{
             $html = @file_get_contents($url);
        }
        if (!empty($url) && $html) { 
            if ($syscharset != $config['sourcecharset'] && $config['sourcetype'] != 4) { 
                $html = iconv($config['sourcecharset'], CHARSET.'//TRANSLIT//IGNORE', $html); 
            } 
            return $html; 
        } else { 
            return false; 
        } 
    }

und speichert sie dann, um das Testergebnis zu erhalten:

Was soll ich tun, wenn die Sammelfunktion von phpcms v9 nicht verwendet werden kann?

Ich weiß nicht, ob es noch verfügbar ist. Bei anderen Fehlern hinterlassen Sie bitte Kommentare und Feedback!

PHP-Website für Chinesisch, eine große Anzahl kostenloser PHPCMS-Tutorials, willkommen zum Online-Lernen!

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die Sammelfunktion von phpcms v9 nicht verwendet werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn