5

YouTube からデータを取得したいのですが、file_get_contents()メソッドを使用しています。

正常に動作する場合もありますが、動作しない場合もあり、次のエラーが表示されます

file_get_contents() [function.file-get-contents]: SSL: crypto enabling timeout
file_get_contents() [function.file-get-contents]: Failed to enable crypto
file_get_contents(https://gdata.youtube.com/feeds/api/users/default?access_token=token&v=2&alt=json) [function.file-get-contents]: failed to open stream: operation failed
Maximum execution time of 30 seconds exceeded

上記のエラーはどういう意味ですか?

とはSSL: crypto enabling timeout

4

3 に答える 3

5

SSLが原因で、できない場合があります。cURL を使用する

これで十分です:

$ch = curl_init('https://youtube.com');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux i686; rv:20.0) Gecko/20121230 Firefox/20.0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
echo curl_exec($ch);
于 2012-12-31T10:02:46.103 に答える
0

表示されるエラーは、接続先のサーバーとシステム上の SSL ライブラリとの間の非互換性です。

使用している OpenSSL ライブラリが古くないことを確認してください。これを確認するには、おそらくシステム管理者に連絡する必要があります。

curl ライブラリが同じ SSL ライブラリを使用している場合、David Harris によって提案された回避策も機能しません。

または、明示的に TLS1 を試すこともできます。これは時々機能します。最初にコマンドラインでテストすることをお勧めします。たとえば、 のコマンドライン バージョンを使用しcurlます。

また、ラッパーによって使用されるPHP Docsの SSL コンテキスト オプション( HTTP のDocshttps://の隣) を調べてみることをお勧めします。

于 2012-12-31T11:24:31.510 に答える
-2

このエラーは、php ページの実行時間が終了したことを意味します。デフォルトでは、php モジュールは任意の php ページの実行に 30 秒を設定します。を使用して増やすことができます

ini_set('max_execution_time', time in seconds as per your need);

この関数を php ページの先頭に記述し、必要に応じて時間を設定してください。その特定のページに対してphpによって設定されたデフォルトの実行時間を上書きします。

于 2012-12-31T10:07:45.170 に答える