php 开发中,遇到要显示图片的时候一般的做法是:
1. 在 html 页面写上诸如 <img src={photo}> 这样的代码,这里假设使用的模板为phplib;
2. 通过php程序查询数据库,然后返回一个图片名称信息,将这个信息在php程序里拼接成正确的图片地址,如拼接成 "$avatar = '../images/avatar.jpg';
3. 使用 $tpl->set_var('photo', $avatar) 向模板传值进行解析。
还有一种做法是写单独的调用程序,然后所有需要显示图片的地方都调用这个程序,这个程序再根据接收到的参数来返回一个图片,实行起来就是修改步骤2,可以写调用程序如下:
//$photo_name 为查询数据库得到的实际图片名称,如,avatar.jpg $filename = $photo_name; //$image = getimagetype($filename); //$mime = image_type_to_mime_type($image); //上面两句与下面两句的作用相同 $image = getimagesize($filename); $mime = image_type_to_mime_type($image[2]); $fileType = substr(strstr($mime,'/'), 1); $img_out_string = "header('Content-type:image/$fileType');image$fileType(imagecreatefrom$fileType('$filename'));"; eval($img_out_string);
这里使用到了php中的eval函数,这个函数将字符串参数当做php代码来运行,(使用这个函数可以达到类似元编程的目的)。使用这个函数主要是因为图片有多种格式,jpg,gif,png等等,而在用imagecreatefromjpeg,imagecreatefromgif,imagecreatefrompng方式时需要将相似的语句写多次,并且还得写一个switch,使用eval函数可以明显的减少不必要的代码量,是不是有些类似c++,java中的模板?
调用是可以写成<img src="getImage.php?id=1">,通过改变id值便可以达到更改图片的目的。
参考:https://www.cnblogs.com/rereadyou/articles/2161021.html
本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。