Php 如何为这个简单脚本生成自动URL?

Php 如何为这个简单脚本生成自动URL?,php,Php,我有一个脚本,在每次刷新页面时自动从目录加载图像。但是,如果用户想要链接到图像,则无法链接,因为没有生成URL。以下是当前脚本: <?php $imagesDir = 'images/'; $images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); $randomImage = $images[array_rand($images)]; ?> <img src="http://www.domain.com/&

我有一个脚本,在每次刷新页面时自动从目录加载图像。但是,如果用户想要链接到图像,则无法链接,因为没有生成URL。以下是当前脚本:

<?php
$imagesDir = 'images/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)];
?>
<img src="http://www.domain.com/<?php echo $randomImage; ?>">

">

正如您在此处看到的,脚本会自动从文件夹中提取一个随机图像,然后显示它。当页面刷新时,脚本会加载一个新图像。如何使每个图像都有自己的唯一URL标识符?这是否可能?欢迎提供所有帮助。谢谢。

您所需要的只是在脚本中获取参数的方法。常用的方法是使用查询字符串

http://example.com/yourScript.php?image=abcdefg.jpg
然后在PHP脚本中,可以使用
$\u GET['image']
确定请求的图像是
abcdefg.jpg

如果您对该URL不感兴趣,您可以将web服务器配置为在将其发送到PHP之前重写该URL。也就是说,您可以有如下内容:

http://example.com/images/abcdefg.html
您的web服务器的重写引擎将在将其发送到php之前,在内部将其改写为
/images/abcdefg.html
,并将其改写为
/yourScript.php?image=abcdefg.jpg
。用户不会知道或关心这一情况。然后您可以像正常情况一样访问php脚本中的数据

如何做到这一点取决于您的web服务器。如果使用Apache,您需要查看mod_rewrite。Nginx具有ngx_http_rewrite_模块


现在,在PHP脚本中,只需使用正确的变量呈现页面即可。我建议使用模板引擎,但对于简单页面,
echo
with
htmlspecialchars()
绕过任何任意数据都可以。如果您愿意,您还可以做一些其他事情,例如检查文件是否存在。

您想要一个php页面与图像一起使用?还是仅仅是图像本身?但是您想要在php页面内做什么?仅仅是图像本身还是其他什么?仅仅是图像本身。但是为什么?两者之间有什么区别只需链接图像的url,并创建一个包含图像的php页面(基本上包含图像的url).我能想到一些东西。我会在答案中写一些东西,但不能保证它会起作用。现在我们正在取得进展。这是有意义的。如果可以,你能提供如何做到这一点的示例代码吗?@DavidHinojosa用于什么?重写?不,因为我不知道你使用的是什么web服务器。我使用的是Apache。但不是用于重写,因为r$\u GET['image']部分首先,您需要验证该文件是否存在。如果不存在,则需要发送404状态响应。
http\u response\u code(404);退出;
如果存在,则只需将其回显…
echo';
记住使用
htmlspecialchars()可以避免任何在HTML上下文中使用的任意数据。如果您的页面开始变得复杂,请考虑模板引擎。成功!我可以在您的评论的帮助下完成我需要做的事情。检查结果:正如您所看到的,现在每个图像,除了第一个加载的图像之外,现在可以直接链接到通过网址。