如何在每次访问页面时运行 php 脚本?
我正在使用这个图像旋转器。这很棒,但如果我在一页上多次链接到它,它会显示相同的图像。我不知道它会被访问多少次,因此使用多个相同的脚本是不切实际的。 如何修改此脚本,以便在使用相同的 url 时可以在页面的其他位置获取不同的图像?是否可以?
编辑:事实证明编码肯定存在一些问题。我在此处找到了更好的代码,如果我使用不同的查询,它就可以工作在每个链接上。感谢所有提交答案的人!
I am using this image rotator. It's great, but if I link to it multiple times on one page, it displays the same image. I don't know how many times it will be accessed, so using multiple identical scripts is impractical.
How do I modify this script so that I can get a different image elsewhere on the page while using the same url? Is it possible?
EDIT: It turns out that there must have been some problem with the coding. I found a better code here, and it works if I use different queries on each link. Thanks to everyone who submitted answers!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为每个实例传递不同的查询字符串,以便浏览器多次检索它。
您的浏览器发现每个“旋转”图像都使用相同的 URL,因此它会缓存第一个请求的结果图像。
您可以通过两种方式更改此行为。
使用 php.ini 中的随机字符串作为“旋转”图像 URL 的后缀。例如 ("rotate.php?img=my_static_image.jpg&x=12345" 这意味着浏览器对每个图像发出新的请求。
制作您的旋转脚本 如果没有收到额外参数,则重定向到随机网址。
Pass a different query string for each instance so that the browser retrieves it multiple times.
Your browser is seeing that each "rotated" image uses the same URL, so it caches the resulting image from the first request.
You can change this behaviour in two ways.
Suffix your "rotated" image URLs with a random string from php. Eg ("rotate.php?img=my_static_image.jpg&x=12345" This means the browser makes a fresh request for each image.
Make your rotate scrip redirect to a randomized url if it recives no extra parameters.
您可以使用 GET 参数“img”。
/path/to/images/rotate.php?img=my_static_image.jpg
有关默认 GET 参数的更多信息,您可以在文档中找到:http://www.alistapart.com /文章/随机化器/
You can work with the GET parameter 'img'.
/path/to/images/rotate.php?img=my_static_image.jpg
More about the default GET parameter can you find in there documentation : http://www.alistapart.com/articles/randomizer/
如果你想保持 URL 相同,那么只需在你的 php 脚本中添加一个无缓存标头,如下所示:
希望任何像样的浏览器都会尊重这一点,并且不会缓存第一个请求。
您的另一个选择是修改您的
rotate.php
脚本,以便代码包含在函数中。然后,您可以在脚本顶部使用include('rotate.php');
,并在需要的地方使用新的rotate()
函数。If you want to keep the URL the same then just add a no-cache header to your php script like so:
Hopefully any half decent browser will respect this and won't cache the first request.
Your other option is to modify your
rotate.php
script so that the code is contained within a function. Then you would useinclude('rotate.php');
at the top of your script and use your newrotate()
function wherever you need it.