ホームページ  >  記事  >  CMS チュートリアル  >  phpcms v9のコレクション機能が使えない場合はどうすればよいですか?

phpcms v9のコレクション機能が使えない場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2020-01-10 10:11:012759ブラウズ

phpcms v9のコレクション機能が使えない場合はどうすればよいですか?

#phpcms v9 のコレクション機能が使えない場合はどうすればよいですか?

https Web サイトのコンテンツを収集できない主な理由は、https がコンテンツを取得するための file_get_contents をサポートしていないためです。そのため、コンテンツを取得するには、curl の使用を検討できます。 (curl を有効にする必要があります。これは pathinfo で確認できます)

(1) phpcms\modules\collection\classes\collection.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 を見つけ、関数

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

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 中国語 Web サイト、多数の無料

PHPCMS チュートリアル 、オンライン学習へようこそ!

以上がphpcms v9のコレクション機能が使えない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。