2017-07-30 19 views
0

私はPHPインストーラで動作します。
私が望むのは、ページが5秒間スリープしてからメインページが読み込まれた後です。私はこの間にアニメーションの読み込みが必要です。PHPスリープ出力echo

アニメーション

$redir = str_replace('install/','',$redir); 
     sleep(5); 
     header('Location: ' . $redir . 'home') ; 
    } 

そして、これがアニメーションで私の試みだったのない私の最初の作業コード。

$redir = str_replace('install/','',$redir); 

     ob_start(); 
     echo '<style>.register{display:none;}<style>'; 
     ob_flush(); 
     echo '<h1 class="loading">loading...</h1>'; 
     ob_flush(); 
     sleep(5); 
     ob_flush(); 
     header('Location: ' . $redir . 'home') ; 
    } 

動作していないと間違っていると思います。

答えて

0

することはできません出力するいくつかのデータとドキュメントから、PHPを使用した後にリダイレクト:任意の実際の出力は が送信される前に、呼び出されるいずれかの通常のHTMLタグ、空行でなければなりません)

は、そのヘッダを(覚えておいてくださいファイル内またはPHPから

リフレッシュヘッダまたはJavaScriptのリフレッシュを使用して、必要なものを実現できます。

リフレッシュヘッダを持つ例(あなたが前に出力しない場合):

<?php 
header('Refresh: 5;URL='. $redir); 
echo '<style>.register{display:none;}<style><h1 class="loading">loading...</h1>'; 

またはJavaScriptリダイレクトと:

<?php 
echo ' 
    <script type="text/javascript"> 
    window.setTimeout(function(){ 
     location.href="'. $redir .'"; 
    },5000); 
    </script> 
    <style>.register{display:none;}<style><h1 class="loading">loading...</h1>'; 
0

をあなたには、いくつかのページをロードしたい場合は、 5秒後にユーザーがリダイレクトすると、PHPはこれに適していません! HTMLをレンダリングする前にPHPが5秒間スリープしているため、ユーザーはページをロードするのに5秒待ってください!あなたは、この使用してjavascriptの(またはjqueryの)を行い、あなたのページの最後に、このコードを追加する必要があります :

<script> 
setTimeout(function() { 
    window.location.href='new_url'; 
}, 5000); 
</script>