変数のリモートURLデータを取得するカスタム関数を作成しようとしています。しかし、私はフォールバックシステムでこれを行っているので、リモートデータを取得するために利用できる機能は何ですか。
私は何かを逃していないかどうかを確認したいと思います。クライアントマシンで実行するスクリプトを作成しているので、特定の機能が有効になっていない場合は、別の使用可能な機能にフォールバックする必要があります。
function url_get_contents ($url) {
if (function_exists('curl_exec')){
$conn = curl_init($url);
curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($conn, CURLOPT_FRESH_CONNECT, true);
curl_setopt($conn, CURLOPT_RETURNTRANSFER, 1);
$url_get_contents_data = (curl_exec($conn));
curl_close($conn);
}elseif(function_exists('file_get_contents')){
$url_get_contents_data = file_get_contents($url);
}elseif(function_exists('fopen') && function_exists('stream_get_contents')){
$handle = fopen ($url, "r");
$url_get_contents_data = stream_get_contents($handle);
}else{
$url_get_contents_data = false;
}
return $url_get_contents_data;
}
後で私はこのようにチェックすることができます
$data = url_get_contents("http://www.google.com");
if($data){
echo "bravo";
}else{
echo "oops";
}
リモートファイルデータを取得するために利用できるその他のメソッド/関数は何ですか。
あなたのコードとアプローチは素晴らしいです。ほとんどのバージョンのPHPで安全に思えました。
カールに関すること。このオプションをSSLに使用することをお勧めします
curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, false);
そうしないと、一部のシステムでhttpsプロトコルに対して次のエラーが発生します。
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
fsockopen()
リモートコンテンツの取得を試みることもできます。ただし、これについては、プロトコルごとにfor番号を変更する必要があります。
$fp = fsockopen($domain, $portno, $errno, $errstr);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加