我正在创建一个WordPress模板。
我正在显示一个视频目录中的一个, 例如
<
video controls preload="auto" autoplay loop poster="<
?= item_image;
?>
">
<
source src="http://www.srcmini.com/<
?= $item_video_mp4;
?>" type='video/mp4' />
<
source src="http://www.srcmini.com/<
?= $item_video_webm;
?>" type='video/webm' />
<
/video>
【检测文件是否存在于wordpress主题中()】但是, 在某些情况下, 该项目没有视频文件。在这种情况下, 我只想显示替代内容。
我试图使用php的file_exists(), 但我读到它仅适用于本地路径, 不适用于url。所以我试图使用本地相对路径到文件。
我的视频网址是根据帖子标题计算得出的:
$item_path = '/wp-content/uploads/item_media/';
$item_name = get_the_title();
$item_video_mp4 =$item_path . $item_name .'.mp4';
这项工作有效, 它将显示视频和海报框架(如果存在)。问题是, 我需要检测视频是否不存在。
由于php模板位于/ wp-content / themes / mytheme中, 因此我尝试使用该模板
$filepath = '../../uploads/item_media/'. $item_name .'.mp4';
if (file_exists($filepath)) {
echo "The file $filepath exists";
} else {
echo "The file $filepath does not exist";
}
但是文本始终返回false。
有任何想法吗?
更新
我也尝试过此方法:
$filepath = WP_CONTENT_URL . '/uploads/item_media/'. $item_name .'.mp4'
哪个回声
"http://des.dev/wp-content/uploads/item_media/4595DW.mp4 does not exist"
即使有。
#1这似乎可行, 不确定是否是最佳方法:
$filepath = $_SERVER['DOCUMENT_ROOT'] . '/wp-content/uploads/item_media/'. $ring .'.mp4'
#2你应该尝试使用此代替:
$filepath = WP_CONTENT_URL . '/uploads/item_media/'. $item_name .'.mp4';
if (file_exists($_SERVER['DOCUMENT_ROOT'] . $filepath)) {
...
问题在于PHP的file_exists函数采用相对路径或绝对路径, 并且看起来两者都不匹配你的文件系统结构。 $ _SERVER [‘ DOCUMENT_ROOT’ ]。上面的部分将在你要检查的路径之前加上Apache DocumentRoot设置, 使file_exists的参数成为绝对路径。
推荐阅读
- 不同用户角色的不同菜单
- CSS下拉菜单未正确对齐
- Hive入门之数据类型
- 网络编程(part11)--socket模块方法及socket套接字属性
- 网络编程(part7)--网络主机/IP地址/域名/端口号
- 《多元统计分析》学习笔记之聚类分析
- 《娱乐至死》读书笔记(part1)--深入一种文化的最有效途径是了解这种文化中用于会话的工具
- HTML基础(part7)--常用标签之超链接标签
- 《犯罪心理学》读书笔记(part1)--蔑视社会秩序的最明显最极端的表现就是犯罪