PHPを使用してページを更新する


148

PHPを使用してページを定期的に更新するにはどうすればよいですか?PHPで実行できない場合、推奨される最良のシナリオは何ですか?


同期(phpスクリプトの解析中に更新したい状況が発生する)について話しているのか、ページの非同期連続更新(javascript / ajaxに似ている)についての表現なのか?
Najzero 2012

回答:


275

あなたはPHPでそれを行うことができます:

header("Refresh:0");

現在のページを更新し、別のページにリダイレクトする必要がある場合は、以下を使用します。

header("Refresh:0; url=page2.php");

1
更新は公式のヘッダーではありませんが、Netscape Navigator以降、多くのブラウザーでサポートされています。つまり、視聴者がサポートするブラウザを使用していることを確認するためにテストする必要があります。
Patanjali 2016年

5
特にページに画像がある場合は、0を使用すると、サーバーやローカルキャッシュが継続的に破壊されます。画面上の情報(株価など)のみを更新する必要があるが、フォームやJavaScriptからの情報を使用しない場合は、iframeタグを使用して、更新される情報だけが含まれているページを指し、適切な遅延を設定します。最新の情報でなければなりません。
Patanjali

1
これにより、コードに「Headers already sent」エラーが発生します...別の方法はありますか?
DBS '28

解決策についてはここを確認してください。tldr、使用する前に何も出力することはできませんheader();
adrian

109

ではPHPあなたが使用することができます。

$page = $_SERVER['PHP_SELF'];
$sec = "10";
header("Refresh: $sec; url=$page");

または単にJavaScriptを使用しますwindow.location.reload()


2
Yazana header( 'Location:')はユーザーを任意のURLにリダイレクトするために使用され、それを使用してページを更新することはできません。
Patriks 2012

2
プラティック。あなたは間違っている。実際にheader( "refresh:")を使用してページを更新できます
131

6
私は何の待ち時間を好むんが、あなたは両方を行うことができます:header("Location: ".$_SERVER['PHP_SELF']);
ジョン・マグノリア

4
このソリューションに関するメモ:サイトにある種の優れたルーティングまたはURL書き換え(つまり、デフォルトではほとんどすべてのフレームワーク)が実装されている場合$_SERVER['PHP_SELF']、ブラウザーに表示される実際のURLではなく、実際のスクリプトパスが表示されることがあります。その場合は、$_SERVER['REQUEST_URI']代わりに使用してみてください。
BadHorsie 2016年

18

PHPを使用してページを定期的に更新できます。

<?php
    header("refresh: 3;");
?>

これにより、ページが3秒ごとに更新されます。



12

PHPコンテンツを更新する2つの方法を見つけました。

1. HTML metaタグを使用:

echo("<meta http-equiv='refresh' content='1'>"); //Refresh by HTTP 'meta'

2. PHPリフレッシュレートを使用:

$delay = 0; // Where 0 is an example of a time delay. You can use 5 for 5 seconds, for example!
header("Refresh: $delay;"); 

2
//Refresh by HTTP META => // Refresh by HTML METAこれも上からコピーした回答のように見えます。
php_coder_3809625

11

PHPでページを更新するすべての方法に加えて、ページは次のHTMLメタタグで更新されます。

<meta http-equiv="refresh" content="5">

メタリフレッシュを参照してください-「現在のWebページまたはフレームを一定の時間間隔で自動的に更新する」を

時間はcontent値の範囲内で設定できます。


3
これは0秒ごとに更新されます-おそらく何をしているのかとは
異なり

3
はい、私はこの答えについてコメントしています。常に改善の余地があります。そして、そうですcontent、秒単位で任意の値に等しく設定できます-私のコメントは、0秒の更新がおそらくあなたが行っているものではないことを指摘する価値があります:)
warren

2
@Mathlight&他の誰でもコメントの遅延について不平を言う。あなたが先に進んだかもしれないからといって、将来の読者が問題を経験したばかりかもしれず、あなたの答え/コメントは、それに挑戦する遅れたものとともに、それらにまだ関係があるかもしれません。
パタンジャリ

1
@Mathlight投稿が古いからといって、コメントすることに価値がないと人々が思う理由はわかりません。あなたはその考えを捨てるべきです。
マーククレイマー

「ifステートメントの作成元」とはどういう意味ですか?
Peter Mortensen

2

header('Location: .'); Chrome、Firefox、Edge、およびInternet Explorer 11でページを更新するようです。


それは、(1回)必要があるとして:php.net/manual/en/function.header.php:場所「第2の特殊ケースである『:』ヘッダーは、だけでなく、それはブラウザにこのヘッダーバックを送信するだけでなく、それを返すん201または3xxステータスコードが既に設定されていない限り、ブラウザにREDIRECT(302)ステータスコード。
Sz。

しかし、それはOPが要求したものではありません。私はまだそれを賛成していました、それは後になってから、申し訳ありませんでした。もうすぐクリスマスです!:)
Sz。

1

PHPではできません。ページが読み込まれると、PHPが停止し、制御できなくなります。

いくつかのオプションがあります。

  • 使用する JavaScriptをする
  • 更新メタタグを使用し、 <meta http-equiv="refresh" content="5">

更新メタタグが最も簡単で便利だと思います。


63
誤って、次のようなPHPのヘッダー関数を使用している場合、PHPを使用してページを定期的に更新できます。header( "refresh:3;");
131

1
ヘッダーを使用して、PHPでページを更新できます。また、META REFRESHの使用はSEOには理想的ではありません。
TheCarver 2013

1
私はこれは間違っていると思います、常に方法があります:しばらくしてからphpでページを更新したい場合は、phpの更新コードがあるページにajaxリクエストを送信できます。しかし、あなたの答えはまったく良いです
Mohammad Kermani 14

2
違う !答えを修正してください...確かにこれはPHPで実行できます
M_R_K

1
これは完全に間違っています!あらゆる方法で。これは、PHP、ヘッダー(更新)、およびトリガーされたリダイレクトによって実行できます。他のすべての答えの方が良いようです。
Budimir Grom

1

JavaScriptを使用して更新できます。ページ全体を更新するのではなく、divで更新するコンテンツを指定できます。次に、JavaScriptを使用することにより、その特定のdivのみを更新でき、ページ全体を更新するよりも速く機能します。


2
コードを含める場合、この答えはもう少しわかりやすいかもしれません。
I.Am.A.ガイ

1

PHPはサーバー側の言語であるため、PHPでページを更新することはできませんが、ページを更新するにはJavaScriptが最適なオプションです。

location.reload();

訪問場所のreload()メソッド


1
それで、あなたが望むように これを確認してください=>(wrongDomain.epl.fanxt.com)ロードされた後にページを更新するように指定していません。更新の決定がphpコードの実行中に行われた場合、phpは確実に更新でき、何秒後に更新するかを選択できます。
Mohammed Joraid 2014

@Ahmad、あなたはPHPの機能として考えることができません、それはHTMLの機能です。したがって、ソートでは、html応答ヘッダーを設定することで実行しています。そして、それが私があなたがPHPでそれをすることができないと言った理由です。もう1つは、読み込み後/必要に応じてページを更新できないことです。はい、あなたが答えたようにあなたはそれを数秒などに設定することができます。
Patriks、2014

ああ技術。ヘッダーを使用して特定の画像を更新することは可能だと思いますか?それは、粗いphpを介して画像をストリーミングする場合です。
EZFrag 2014年

本当に@EZFragはわかりませんが、それはどのようにして可能ですか。
Patriks、2014年

ああ、そうだ。まず、通常の画像タグを試しました。運はありません。しかし、その後、イメージタグをiframeタグに置き換えて、出来上がりです。画像は自動的に更新されます。これは私のページ上のステータス画像のいくつかで大いに役立ちます:)不思議に思っている人のために、私はphpを介して画像を更新ヘッダーとともに提供し、phpファイルをiframeのsrcとして設定しています。
EZFrag 2014年

1

次のmetaようにタグをエコーします。

URLは、更新後にページがリダイレクトされるURLです。

echo "<meta http-equiv=\"refresh\" content=\"0;URL=upload.php\">";

しかし、問題はリダイレクトについてではありません。リフレッシュについてです。
Peter Mortensen

1

このメタタグをPHPに追加すると、次のような効果があります。

echo '<META HTTP-EQUIV="Refresh" Content="0; URL=' . $location . '">';

3
このコードスニペットは問題を解決する可能性がありますが、説明を含めると、投稿の品質を向上させるのに役立ちます。あなたは将来の読者のための質問に答えていることを覚えておいてください、そしてそれらの人々はあなたのコード提案の理由を知らないかもしれません。
DimaSan 2017年

しかし、問題はリダイレクトについてではありません。リフレッシュについてです。
Peter Mortensen

0

1つのトリックは、URLの最後に乱数を追加することです。これにより、毎回ファイル名を変更する必要がなくなります。例えば:

echo "<img src='temp.jpg?r=3892384947438'>"

乱数が異なる限り、ブラウザーはそれをキャッシュしませんが、Webサーバーはそれを無視します。


2
どのようにしてページを定期的に更新しますか?別の答えに対応していますか?
Peter Mortensen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.