我制作了一个非常基本的网站,它会获取一系列图片网址,拉链并返回拉链位置。问题是脚本在某些时候会中断。
通常会发生以下情况之一:
这是因为服务器只允许一定的时间来执行脚本吗?它似乎可以用更少的图片工作。我能做什么?
我有以下设置:
另外,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) . ');';
?>
它有时会工作,有时不会用于相同的输入。这才是我真正得到的。
答案 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有空格时复制存在一些问题