ページにアクセスするたびにPHPスクリプトを実行するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/5841447

  •  27-10-2019
  •  | 
  •  

質問

私は使っている これ 画像回転子。それは素晴らしいことですが、1ページで複数回リンクすると、同じ画像が表示されます。それが何回アクセスされるかわからないので、複数の同一のスクリプトを使用することは非現実的です。このスクリプトを変更して、同じURLを使用しながらページ上の別の画像を取得できるようにするにはどうすればよいですか?出来ますか?

編集:コーディングに問題があったに違いないことがわかります。より良いコードを見つけました ここ, 、各リンクで異なるクエリを使用すると機能します。回答を提出してくれたすべての人に感謝します!

役に立ちましたか?

解決

インスタンスごとに別のクエリ文字列を渡して、ブラウザが複数回取得するようにします。

ブラウザでは、各「回転した」画像が同じURLを使用していることがわかっているため、最初のリクエストから結果の画像をキャッシュします。

この動作を2つの方法で変更できます。

  1. PHPからのランダムな文字列で「回転した」画像URLを接尾辞します。例("rotate.php?img = my_static_image.jpg&x = 12345" これは、ブラウザが各画像に対して新たなリクエストを行うことを意味します。

  2. 回転スクリップを作ります リダイレクト 追加のパラメーターを記録しない場合、ランダム化されたURLに。

他のヒント

GETパラメーター「IMG」を使用できます。

/path/to/images/rotate.php?img=my_static_image.jpg

デフォルトのGetパラメーターの詳細については、ドキュメントで見つけることができます。 http://www.alistapart.com/articles/randomizer/

URLを同じままにしたい場合は、そうするようにPHPスクリプトにキャッシュなしヘッダーを追加するだけです。

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

うまくいけば、半分のまともなブラウザがこれを尊重し、最初のリクエストをキャッシュしないことを願っています。

あなたの他のオプションはあなたを変更することです rotate.php コードが関数内に含まれるようにスクリプト。その後、使用します include('rotate.php'); スクリプトの上部で、新しいものを使用してください rotate() 必要なところはどこでも機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top