2013-07-01 4 views
0

Я использую следующую функцию, чтобы понять, существует ли файл с помощью globпроверка PHP Глоб, если файл существует

function eSetSplash($eID, $catID) { 
    $splashscreen = URL_ICONSET . $catID . "/default_splashscreen.png"; 
    if (file_exists(glob(DIRECTORY_PATH_UPLOADS . md5($eID) . 'app/splashscreen_event.*'))) 
     $splashscreen = glob(SITE_URL .'/upload/' . md5($eID) . 'app/splashscreen_event.*'); 
    return $splashscreen; 
} 

У меня есть две проблемы:

<b>Warning</b>: file_exists() expects parameter 1 to be a valid path 

А также я не уверен, что если следующий путь фактически вернет путь к файлу или, если это просто мое воображение: D

$splashscreen = glob(SITE_URL .'/upload/' . md5($eID) . 'app/splashscreen_event.*'); 
+0

Да, $ splashscreen = glob (SITE_URL. '/ Upload /'. Md5 ($ eID). 'App/splashscreen_event. *'); это найдет все файлы в каталоге приложений, начиная с splashscreen_event –

ответ

2

glob получает все имена файлов, соответствующие вашему шаблону, и возвращает массив, содержащий эти имена.

Таким образом, вместо того, чтобы использовать file_exists (который ожидает строку пути к файлу, а не массив), вы можете просто использовать что-то вроде:

$files = glob(...); 
if (count($files) > 0) 

, чтобы увидеть, если были обнаружены какие-либо файлы.

Если вы уверены, что ваш шаблон вернет только одно имя файла или меньше, вы можете использовать $files[0] или reset($files), чтобы получить первый элемент (если условие выполнено ...).

+0

ok и для моего второго вопроса. Возвращает ли glob также сопоставленное имя файла, если оно найдено? –

+0

Вы забыли лишний ')' за 'glob (...)' – Sumurai8

+0

@ Sumurai8 Спасибо, отредактировал немного для ясности. – jeroen

Смежные вопросы