我想检查我的服务器上是否存在视频文件 - 如果它确实嵌入了它,那么请改为播放youtube嵌入式。
(本地文件和youtube网址存储在单独的自定义字段中,两者都是绝对路径)
我有以下代码基于其他类似的问题和PHP手册似乎是正确的但是我总是得到本地视频播放器嵌入,无论本地文件是否存在 - 不能为我的生活找出什么是错的?
<?php
$localvideo = get_post_meta($post->ID, 'videoembed', true);
if ( file_exists($localvideo)) {
//embed video url stored in custom field 'videoembed'
echo do_shortcode( '[video src='. $localvideo . ' ]');
} else {
//code to embed youtube video instead
//echo to test if url in variable is correct
echo $localvideo;
}
clearstatcache();
?>
答案 0 :(得分:1)
解决方案是file_exists字符串需要是文件的相对路径而没有前面的/ 即我原来的file_exist检查是有效的
$localvideo = 'http://localhost/wp-content/video/test.flv'
而不是
$localvideo = 'wp-content/video/test.flv'
答案 1 :(得分:0)
将file_exists更改为is_file() 在你的代码中 例如: if(is_file($ localvideo)){