Php 如何从路径中查找不同类型的文件
用户头像保存在Php 如何从路径中查找不同类型的文件,php,wordpress,file-upload,avatar,Php,Wordpress,File Upload,Avatar,用户头像保存在。/wordpress/wp content/uploads/文件夹中,名称和扩展名与输入相同。也就是说,如果上载PNG文件,则扩展名变为user\u avatar0.PNG,否则如果上载JPG,则扩展名将变为user\u avatar0.JPG。 我正在为每个循环加载多个用户化身 这是我用来加载化身文件的代码: $path="../wordpress/wp-content/uploads/"; $av=$path."user_avatar0.png|.jpg"; // if jp
。/wordpress/wp content/uploads/
文件夹中,名称和扩展名与输入相同。也就是说,如果上载PNG文件,则扩展名变为user\u avatar0.PNG
,否则如果上载JPG,则扩展名将变为user\u avatar0.JPG
。
我正在为每个循环加载多个用户化身
这是我用来加载化身文件的代码:
$path="../wordpress/wp-content/uploads/";
$av=$path."user_avatar0.png|.jpg"; // if jpg exists loads jpg otherwise load png
<img src="'. $av .'" height="200" width="200" border="0" >
$path=“../wordpress/wp content/uploads/”;
$av=$path.“user_avatar0.png |.jpg”//如果jpg存在,则加载jpg,否则加载png
如何从包含不同扩展名(jpg、png等)的文件的目录中选择文件?您使用Smart
.png |.jpg
所尝试的语法不幸不为人所知。它不会被PHP或解析HTML的浏览器解释。PHP没有以shell参数扩展的方式自动填充路径变量的功能。当然有,但是全局搜索整个目录以获得一个扩展名为jpg/png的文件是非常低效的
如果您没有文件扩展名的记录(您可以查询您的WP数据库?),您只需使用类似的方法进行检查,假定jpg/png是唯一的可能:
$file = 'user_avatar0.';
$file .= file_exists($file.'jpg') ? 'jpg' : 'png';
如果存在匹配项,则将basename与扩展名jpg
连接,如果不匹配,则返回到png
。如果用户可能根本没有头像,那么您应该改为执行If elseif else
,如果file\u都存在
检查失败,则默认为标准占位符。您还可以使用或验证文件是否存在;但逻辑仍然是一样的。谣传最后一个选项是最快的,但在任何情况下,每个选项都会缓存其结果
不管怎样,如果你在重复的页面加载中显示相同的用户化身,你会考虑把这些检查的结果保存到<代码> $yStudio数组中,以消除重复和冗余的检查。我将让您对PHP的filesys缓存和session缓存进行基准测试。
在相关函数中,可以使用fnmatch()
~~来检查是否存在与regex模式匹配的文件。但是,它只返回一个布尔值,因此在OP的情况下没有帮助。只是为了记录re:parallels到PHP中的shell模式。这行中有语法错误吗<代码>$file.=文件存在($file.jpg')?'jpg:‘巴布亚新几内亚’代码>未关闭的报价在'jpg
之后。现在已在文章中修复。具有多个扩展名的文件可能类似于:file.en.html
。这是正确的,但可能不是你这里的意思。