>  기사  >  CMS 튜토리얼  >  phpcms v9의 수집 기능을 사용할 수 없으면 어떻게 해야 하나요?

phpcms v9의 수집 기능을 사용할 수 없으면 어떻게 해야 하나요?

藏色散人
藏色散人원래의
2020-01-10 10:11:012759검색

phpcms v9의 수집 기능을 사용할 수 없으면 어떻게 해야 하나요?

phpcms v9의 수집 기능을 사용할 수 없는 경우 어떻게 해야 하나요?

https 웹사이트 콘텐츠를 수집할 수 없는 주된 이유는 https가 콘텐츠 획득을 위한 file_get_contents를 지원하지 않기 때문입니다. 따라서 콘텐츠 획득을 위해 컬을 사용하는 것을 고려해 볼 수 있습니다. (curl을 켜야 합니다. pathinfo에서 확인할 수 있습니다)

(1) phpcmsmodulescollectionclassescollection.class.php

열기 클래스에 새 함수 추가:

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) 함수 get_htm을 찾아 변경 function

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

to

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

그런 다음 저장하여 테스트 결과를 받으세요

phpcms v9의 수집 기능을 사용할 수 없으면 어떻게 해야 하나요?

다른 버그가 있는지는 모르겠지만 피드백을 위해 메시지를 남겨주세요!

PHP 중국어 웹사이트, 수많은 무료 PHPCMS 튜토리얼, 온라인 학습을 환영합니다!

위 내용은 phpcms v9의 수집 기능을 사용할 수 없으면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.