Home  >  Article  >  CMS Tutorial  >  What to do if phpcms cannot be collected

What to do if phpcms cannot be collected

藏色散人
藏色散人Original
2019-12-28 10:06:312554browse

What to do if phpcms cannot be collected

What should I do if phpcms cannot be collected?

The main reason why https website content cannot be collected is that https does not support file_get_contents to obtain content, so you can consider using curl to obtain it. (You need to enable curl, which can be viewed in pathinfo)

(1) Open phpcms\modules\collection\classes\collection.class.php

Add new functions in the class:

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) Find the function get_htm, change the 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; 
        } 
    }

and save it to obtain the test result

What to do if phpcms cannot be collected

I don’t know if there are any other bugs, please leave a message for feedback!

PHP Chinese website, a large number of free PHPCMS tutorials, welcome to learn online!

The above is the detailed content of What to do if phpcms cannot be collected. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn