Maison  >  Article  >  Tutoriel CMS  >  Que dois-je faire si la fonction de collecte de phpcms v9 ne peut pas être utilisée ?

Que dois-je faire si la fonction de collecte de phpcms v9 ne peut pas être utilisée ?

藏色散人
藏色散人original
2020-01-10 10:11:012802parcourir

Que dois-je faire si la fonction de collecte de phpcms v9 ne peut pas être utilisée ?

Que dois-je faire si la fonction de collecte de phpcms v9 ne peut pas être utilisée ?

La principale raison pour laquelle le contenu du site Web https ne peut pas être collecté est que https ne prend pas en charge file_get_contents pour obtenir du contenu, vous pouvez donc envisager d'utiliser curl pour l'obtenir. (curl doit être activé, vous pouvez le vérifier dans pathinfo)

(1) Ouvrez phpcmsmodulescollectionclassescollection.class.php

Ajoutez une nouvelle fonction dans la classe :

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) La fonction Rechercher une fonction get_htm change la fonction

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; 
        } 
    }

en

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; 
        } 
    }

puis l'enregistre pour l'obtenir. Le résultat du test est

Que dois-je faire si la fonction de collecte de phpcms v9 ne peut pas être utilisée ?

.

. Je ne sais pas s'il est toujours disponible. Pour les autres bugs, merci de laisser des commentaires et des retours !

Site Web PHP chinois, un grand nombre de Tutoriels PHPCMS gratuits, bienvenue pour apprendre en ligne !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn