我有以下脚本用于PDF网站上的某些页面:
<?
include_once('phpToPDF.php') ;
phptopdf_url( 'http://www.example.com/csb04-termination-box/?style=alt' ,'pdf/', 'csb04-termination-box.pdf');
phptopdf_url( 'http://www.example.com/csb05-termination-box/?style=alt' ,'pdf/', 'csb05-termination-box.pdf');
phptopdf_url( 'http://www.example.com/csb06-compact-termination-box/?style=alt' ,'pdf/', 'csb06-compact-termination-box.pdf');
echo 'Done';
?>
我遇到的问题是,如果我在脚本运行完毕之前添加了更多页面,服务器会超时。我尝试过更改set_time_limit(0);
,但这没有帮助(在共享主机上)。
修改脚本以便完成的最佳方法是什么?我考虑过尝试将其拆分为多个脚本并通过ajax运行它,但不知道从哪里开始,因为没有以前的经验。
答案 0 :(得分:3)
最简单的方法是:
include_once('phpToPDF.php') ;
$i = isset($_GET['i']) ? intval($_GET['i']) : 0;
if ($i == 0) phptopdf_url( 'http://www.example.com/csb04-termination-box/?style=alt' ,'pdf/', 'csb04-termination-box.pdf');
if ($i == 1) phptopdf_url( 'http://www.example.com/csb05-termination-box/?style=alt' ,'pdf/', 'csb05-termination-box.pdf');
if ($i == 2) phptopdf_url( 'http://www.example.com/csb06-compact-termination-box/?style=alt' ,'pdf/', 'csb06-compact-termination-box.pdf');
if ($i < 3) header('Location: ?i=' . ($i + 1));
echo 'Done';
基本上,这可以让您的webbrowser进行计数,而无需使用Ajax。当一个请求完成后,浏览器会自动加载下一页,直到计数器($i
)为3。
答案 1 :(得分:0)
使用以下脚本处理所有文件,一次一个:
include_once('phpToPDF.php') ;
$urls = array();
$urls[] = array('http://www.example.com/csb04-termination-box/?style=alt', 'csb04-termination-box.pdf');
$urls[] = array('http://www.example.com/csb05-termination-box/?style=alt', 'csb05-termination-box.pdf');
$urls[] = array('http://www.example.com/csb06-termination-box/?style=alt', 'csb06-termination-box.pdf');
// add here more elements in $urls if needed
if(!isset($_GET['n']))
$n = 0;
else
$n = intval($_GET['n']);
if(isset($urls[$n]))
{
phptopdf_url($urls[$n][0] ,'pdf/', $urls[$n][1]);
header('Location: ?n='.($n+1)); // calls the conversion of the next file in the $urls array
}
else
echo 'Done';