PHP随机切断

时间:2011-09-06 07:39:55

标签: php

我制作了一个非常基本的网站,它会获取一系列图片网址,拉链并返回拉链位置。问题是脚本在某些时候会中断。

通常会发生以下情况之一:

  • 并非所有照片都被复制
  • 并非所有照片都被复制,最后一张照片的文件大小为
  • 有时ajax调用不会运行错误或成功回调

这是因为服务器只允许一定的时间来执行脚本吗?它似乎可以用更少的图片工作。我能做什么?

我有以下设置:

  • max_execution_time 10
  • max_file_uploads 20
  • max_input_nesting_level 64
  • max_input_time 10

另外,set_time_limit被禁用。

我试过ini_set('max_execution_time',300);并没有改变

编辑:可能是一个非常愚蠢的问题,但是如果我在一定时间后执行另一个PHP页面,如果脚本没有在限制之前完成,它会改变什么吗?

我正在使用:

<?php
    include('zip2.php');
    header("content-type: text/javascript"); 


    function err($que){
        $obj->err = $que;
        echo $_GET['callback']. '(' . json_encode($obj) . ');';
        die;
        }
    if(!count($_GET['pictures'])>0){die;}
    $tmpp = tempnam('userzips','mod');
    unlink($tmpp);
    $loc = 'userzips/'.basename($tmpp);
    mkdir($loc);
    $a=$_GET['pictures'];
    for($i=0;$i<count($a);$i++){
        copy($a[$i],$loc.'/'.basename($a[$i])) or err("didn't zip");
        }
    Zip($loc,$loc.'/pictures.zip') or err("didn't zip");
    $obj->loc = 'http://mysite.com/'.$loc.'/pictures.zip';
    $obj->allgood = true;
    echo $_GET['callback']. '(' . json_encode($obj) . ');';

?>

它有时会工作,有时不会用于相同的输入。这才是我真正得到的。

1 个答案:

答案 0 :(得分:1)

upload_max_filesize和post_max_size也可以是理由

upload_max_filesize=100M
post_max_size=105M
max_execution_time=600
max_input_time=600

尝试在复制时检查错误

if(!@copy('http://someserver.com/somefile.zip','./somefile.zip'))
{
    $errors= error_get_last();
    echo "COPY ERROR: ".$errors['type'];
    echo "<br />\n".$errors['message'];
} else {
    echo "File copied from remote!";
}

我也听说当url有空格时复制存在一些问题