PHP随机中断

PHP随机中断,php,Php,我已经创建了一个非常基本的网站,它获取一系列图像URL,对它们进行压缩,并返回zip位置。问题是脚本在某个点中断 通常会发生以下情况之一: 并不是所有的图片都被复制了 并非所有图片都被复制,最后一张图片的文件大小为0 有时ajax调用不会运行错误或成功回调 这是因为服务器只允许脚本执行一定的时间吗?它似乎确实适用于较少的图片。我能做什么 我有以下设置: 最大执行时间10 max_文件上传20 最大输入嵌套级别64 最大输入时间10 此外,设置时间限制被禁用 我尝试了ini_集合(“最大执

我已经创建了一个非常基本的网站,它获取一系列图像URL,对它们进行压缩,并返回zip位置。问题是脚本在某个点中断

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

  • 并不是所有的图片都被复制了
  • 并非所有图片都被复制,最后一张图片的文件大小为0
  • 有时ajax调用不会运行错误或成功回调
这是因为服务器只允许脚本执行一定的时间吗?它似乎确实适用于较少的图片。我能做什么

我有以下设置:

  • 最大执行时间10
  • max_文件上传20
  • 最大输入嵌套级别64
  • 最大输入时间10
此外,设置时间限制被禁用

我尝试了ini_集合(“最大执行时间”,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) . ');';

?>

上传最大文件大小和发布最大文件大小也是原因之一

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!";
}
if(!@copy()http://someserver.com/somefile.zip“,”./somefile.zip'))
{
$errors=error_get_last();
回显“复制错误:”.$errors['type'];
回显“
\n”。$errors['message']; }否则{ echo“从远程复制的文件!”; }

我还听说,当url有空格时,复制会出现一些问题。您是否启用了错误报告功能?因为您至少有两个完全不相关的问题(没有调用AJAX回调和服务器端问题),并且没有绝对没有调试信息,我建议您暂时休息一下,摆脱众多问题的困扰,然后检查代码并将其简化到可以成功重现一个问题的程度(例如,创建一个新的php页面并模拟100个URL的输入)。顺便说一下,一个非常基本的网站是
echo'Hello,world'。你的很复杂。另外,请检查您的apache错误日志,查看可能发生的任何错误。但如果我复制它,它是否算作上载?不,它不=)我第一次并没有理解这个问题,所以问题出在其他。。是否使用curl复制图像?否,使用copy(externalurl、serverurl);当然只是有点尴尬:D.还有,我要用ini_set设置吗?我试过了,但没有改变任何东西,也没有出错