php遍历输出文件夹内包含指定关键字图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php遍历输出文件夹内包含指定关键字图片相关的知识,希望对你有一定的参考价值。

比如说在www\images目录下有aa11.jpg,aa22.jpg,cc3c.jpg,ee4e.jpg 4个图片文件。

想要实现的功能是,当我输入关键字a时,输出aa11.jpg,aa22.jpg这两个图片,
输入关键字'c'时,输出显示cc3c.jpg图片文件.
请问有方法实现该功能吗?麻烦各位大虾写下代码.

参考技术A //获取输入值
$test=$_GET['test'];
//获取文件列表
function getFile($dir)
$fileArray[]=NULL;
if (false != ($handle = opendir ( $dir )))
$i=0;
while ( false !== ($file = readdir ( $handle )) )
if ($file != "." && $file != ".."&&strpos($file,"."))
$fileArray[$i]=$file;
if($i==10000)
break;

$i++;


//关闭句柄
closedir ( $handle );

return $fileArray;

foreach($file_arr as $val)
if(strstr($val,$test))echo $val;

参考技术B <form method="post">
输入你要查询的关键字:<input type="text" name="word" /><br />
<input type="submit" value="提交" />
</form>
<?php
if(isset($_POST['word']))
$word=$_POST['word'];
$result=glob("$word*.*");
print_r($result);

?>追问

上面的代码好像只能搜索出首字母带关键字,类似输入关键字‘a’得到aa11.jpg

如果我想得到输入‘1’,就能得到aa11.jpg,
请问该怎么实现呢?

$result=glob("$word*.*");
修改为

$result=glob("*$word*.*");
就可以了。

本回答被提问者采纳

php 图片流 转 base64

我只会用这种方法生成图片
//以上代码忽略
imagepng($code)
这样会直接在浏览器输出图片,后面加路径则会在指定位置输出图片

那么问题来了,我要把图片转换为base64编码,就必须先要imagepng($code,路径)
然后再从路径读图片转为base64编码,有没有办法直接用 $code这个参数直接转换为base64编码的图片?据查这个$code参数就是图片流,我就是想不通过写出文件的步骤直接转为base64编码,求指教。

用途:网站内一些数字为了防采集,将用图片显示,但是我只能做成带get参数的图片生成器,那就失去了防采集功能了

参考技术A

给你试试吧:

<?php
$im =  imagecreatetruecolor(100, 100);

ob_start();
imagepng($im);
$fileContent = ob_get_contents();
ob_end_clean();

echo base64_encode($fileContent);

追问

这个是不行的,imagepng($im);已经输出到浏览器了,后面再编码就意义不大了,等于输出了两次,我想直接用$im这个参数编码,我已经解决了,不过还是感谢回复,接分。

本回答被提问者和网友采纳

以上是关于php遍历输出文件夹内包含指定关键字图片的主要内容,如果未能解决你的问题,请参考以下文章

python3.7脚本---遍历指定目录内所有文件

php如何显示,排列指定文件夹中所有文件夹名

PHP怎么实现检索文件内容中存在关键字的文件?

批处理如何在指定文件夹内搜索某个关键字,包含这个关键字的文件或文件夹要删除?

PHP实现压缩文件夹内所有图片的分辨率

php中怎么输出图片