2014-07-16 51 views
1

我想檢查我的服務器上是否存在視頻文件 - 如果它嵌入了其他地方,請改用嵌入的youtube。PHP檢查文件是否存在於Wordpress

(本地文件和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

你可以檢查併發布'$ localvideo'的值嗎? – Rikesh

+0

是的。考慮到你使用$ localvideo作爲src(應該是一個URL),有可能它是一個web url而不是實際的文件?如果它*是一個URL,那麼這個URL是否存在? (例如,這可能意味着它在那裏,並提供一個404,我不知道在這種情況下file_exists會做什麼......)除了文件和URL之間可能存在混淆外 - 我希望您的代碼可能檢查一個文件存在,然後爲它提供一個URL - 我沒有看到很多錯誤。 –

+0

添加了$ localvideo的回顯並顯示網址,例如'http://localhost/wp-content/video/myvid.flv' – user2894986

回答

0

的解決方案是,file_exists串需要是到一個相對路徑不包括前面的/ 文件即我原來file_exist檢查是有效

$localvideo = 'http://localhost/wp-content/video/test.flv' 

,而不是

$localvideo = 'wp-content/video/test.flv' 
0

變化file_exists到is_file() 在你的代碼 例如: 如果(is_file($ localvideo)){

+0

嗨,is_file不幸的是給file_exists相同的結果.. – user2894986