PHP脚本不会结束

时间:2015-01-13 15:01:50

标签: php file

所以我得到了我的脚本:

我有一个文件名(图像)列表,我遍历数组并将图像从Amazon S3加载到我的本地存储。我们正在谈论35,000张图片,需要3个多小时。

我下载了所有想要通过标题位置重定向的图像。但是脚本不会执行它。就像它在循环之后停止一样。

如果我要加载一个非常小的图像列表,它将毫无问题地工作。

apache错误日志不显示任何错误。之后服务器上没有运行php进程。但该请求仍在浏览器中运行。

Ini设置如下:

ini_set( 'max_execution_time', 60 * 30 );
ini_set( 'memory_limit', '4096M' );

Foreach循环看起来像这样:

foreach( $arrImages as $file ) {

    $strPath = $strBasePath . DIRECTORY_SEPARATOR . $file['name'];

    // check directory
    $pos = strrpos( $strPath, DIRECTORY_SEPARATOR );
    $dir = substr( $strPath, 0, $pos );
    if( !is_dir( $dir ) ) {

        exec( "mkdir -p " . $dir );
        exec( "chmod -R 777 " . $strBasePath . DIRECTORY_SEPARATOR );
    }
    // check if file or path
    if( !is_dir( $strPath ) ) {

        // build filename
        $lastSeparatorPos = strrpos( $strPath, DIRECTORY_SEPARATOR );
        $filename         = explode( '.', substr( $strPath, $lastSeparatorPos + 1, strlen( $strPath ) - 1 ) );
        $clearedFilename  = explode( '_', $filename[0] );


        if( !in_array( $clearedFilename[0], $arrOrdernumbers ) && strpos( $dir, 'groups' ) == false && strpos( $dir, 'background' ) == false ) {

            $intCountNotImported++;
        }
        else {

            $handle = fopen( $strPath, 'wb' );

            if( $handle == false ) {

                \ImportLogger::log( $strPath . ' - Bild konnte nicht uebertragen werden' );
            }
            else {

                // get File/Folder
                $objImage = \S3::getObject( C_S3_BUCKET, $file['name'] );
                fwrite( $handle, $objImage->body );
                $intAmount++;

                // Log every 100 Files
                if( $intAmount % 100 == 0 ) {

                    \ImportLogger::log( $intAmount . ' Bilder uebertragen' );
                }
            }

            fclose( $strPath );
        }
    }
}

\Debugger::sendEmail( 'xx@xxxx.de', 'Fetchimages', $intAmount . ' - Images loaded' ); // This E-Mail I still get


// Redirect is not happening

$strUrl = '/string/configurator2/compressimages';
header( 'Location: ' . $strUrl );

exit;

任何可能导致此问题的想法?

感谢您的帮助!

0 个答案:

没有答案