关于php随机图片那个衍生的一个小问题

查看:92
本文介绍了关于php随机图片那个衍生的一个小问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我不是搞了个随机图片的吗

//api.isoyu.com/mm_images.php

最开始百度到的代码

<?php 
/********************************************** 
* Filename : img.php 
* Author : freemouse 
* Date : 2010/12/27 
* Usage: 
* <img src=img.php> 
* <img src=img.php?folder=images2/> 
***********************************************/ 
if($_GET['folder']){ 
$folder=$_GET['folder']; 
}else{ 
$folder='/uploads/2017/07/'; 
} 
//存放图片文件的位置 
$path = $_SERVER['DOCUMENT_ROOT']."/".$folder; 
$files=array(); 
if ($handle=opendir("$path")) { 
while(false !== ($file = readdir($handle))) { 
if ($file != "." && $file != "..") { 
if(substr($file,-3)=='gif' || substr($file,-3)=='jpg') $files[count($files)] = $file; 
} 
} 
} 
closedir($handle); 
 
$random=rand(0,count($files)-1); 
if(substr($files[$random],-3)=='gif') header("Content-type: image/gif"); 
elseif(substr($files[$random],-3)=='jpg') header("Content-type: image/jpeg"); 
readfile("$path/$files[$random]"); 
?> 

非常不错,不过有个小缺点查看不了图片直链地址,比如看到某个露骨图片,想删却不知道文件名
清一色php文件名

继续百度

效果一样又谷歌搜了搜

<?php //随机输出目录中的图片 
$image_directory = "./uploads/2017/07/"; //设定图片目录 
$image_type = array(".jpg",".gif",".png"); //设定图片类型 
echo "<img src='".$image_directory."/".image_rand_output($image_directory,$image_type)."'>"; // 输出图片 
 
function image_rand_output($image_directory,$image_type) //随机输出图片函数 
{ 
$dh = dir($image_directory); 
while (false !== ($image = $dh -> read())) 
{ 
if(in_array(strtolower(strrchr($image,".")),$image_type)) 
$image_array[] = $image; 
} 
$dh -> close(); 
$key = array_rand($image_array); 
return $image_array[$key]; 
} 
?>

这种是显示即随机图片,不过不能调用

然后手改了一下
header("location:$image_directory./".image_rand_output($image_directory,$image_type)."");

可以调用了,直接访问也会直链图

https://api.isoyu.com/mm_imag...

但是调用查看原图还是php文件

<img src='//api.isoyu.com/mm_images.php'>

最终幻想是调用的即图片原链接或能分辨出来

解决方案

已解决
1.伪静态<唐伯虎>
RewriteEngine On
RewriteRule ^/images/(.+?.jpg)$ /img.php?name=$1
2.@姬長信,我推荐用第一种方法,如果让我想,我把返回的文件名字放在响应头,或者是以cookie的形式返回,通过在控制台查看set_cookie信息就知道这是哪一个文件了。其他方案楼下回答

这篇关于关于php随机图片那个衍生的一个小问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆