0

我有以下脚本,用于 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 运行它,但不确定从哪里开始,因为之前没有使用它的经验。

4

2 回答 2

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';

基本上,这可以让您的网络浏览器进行计数,而无需使用 Ajax。当一个请求完成时,浏览器会自动加载下一页,直到计数器 ( $i) 为 3。

于 2013-03-18T17:27:18.237 回答
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';
于 2013-03-18T17:38:24.900 回答