0

これはコードです:

...
require_once 'Zend/Loader.php'; // the Zend dir must be in your include_path
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Zend_Loader::loadClass('Zend_Uri_Http');
$yt = new Zend_Gdata_YouTube();
$videoEntry = $yt->getVideoEntry($id_video);
....

このスクリプトのいくつかの行では、いくつかの行で、Zend_Gdata_YouTube() または getVideoEntry($id_video) が返されず、スクリプトが終了します。スクリプトのフォルダーにログ ファイルがないため、実行時に何が起こるかわかりません。助けや提案をいただければ幸いです。

4

1 に答える 1

2

同じ問題に遭遇しましたが、YouTube ビデオのアップロードで発生しました。Zend ファイルを調べてみると、スクリプトが死んでいる場所が見つかりました。それはであるZend/Gdata/HttpAdapterStreamingSocket.php:

while ($chunk !== FALSE) {
    if (! @fwrite($this->socket, $chunk)) {
        require_once 'Zend/Http/Client/Adapter/Exception.php';
        throw new Zend_Http_Client_Adapter_Exception(
            'Error writing request to server');
    }
    $chunk = $body->read(self::CHUNK_SIZE);
}

@からを削除するfwriteと、最大実行時間の超過エラーが発生しました。ループの実行時間制限を無効にすることで、エラーは再び発生しなくなりました。

$executionTime = ini_get('max_execution_time');
set_time_limit(0);
while ($chunk !== FALSE) {
    if (! fwrite($this->socket, $chunk)) {
        require_once 'Zend/Http/Client/Adapter/Exception.php';
        throw new Zend_Http_Client_Adapter_Exception(
            'Error writing request to server');
    }
    $chunk = $body->read(self::CHUNK_SIZE);
}
set_time_limit($executionTime);

これは正確な問題ではないかもしれませんが、@fwrite 呼び出しの Zend ファイルを調べて、同じことを行ってみてください。これは、ソケットにチャンクを書き込んでいる間、およびエラーを抑制する関数でスクリプトが停止している可能性があるためです。

于 2012-07-13T09:32:02.910 に答える