0

Web サイトの一部のページを 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 を使用せずに Web ブラウザーでカウントを行うことができます。$i1 つの要求が完了すると、カウンター ( ) が 3になるまで、ブラウザーは自動的に次のページを読み込みます。

于 2013-03-18T17:27:18.237 に答える
0

次のスクリプトを使用して、すべてのファイルを一度に 1 つずつ処理します。

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 に答える