2015-03-11 7 views
0

Я пытаюсь выяснить, какие файлы существуют на моем hdd, а какие нет. Я создал скрипт, который работал для большинства файлов, но он говорит, что не может найти этот файл, даже если он есть. Есть также несколько других, которые не работают.PHP glob Не подходит для всех файлов

У меня есть этот файл здесь, который я уже подтвержденного существует: 1430 - Theta (J) (Independent) .nds

если я сделать следующее:

$files = glob("/var/www/html/files/*"); 

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

$findFile = glob("/var/www/html/files/1430 - Theta (J)(Independent).nds"); 

Он продолжает возвращаться, поскольку ничего не найдено. Есть ли что-то, что мне нужно избежать в этом файле?

Полный код:

$query = "SELECT r_id, r_url FROM games WHERE r_url <> '' && r_uploaded = '' && r_console = 'nds' ORDER BY RAND() LIMIT 1"; 
$sql = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($sql)) { 


$fileName = substr($row['r_url'], strrpos($row['r_url'], '/') + 1); 

$path = "/var/www/html/files"; 

echo "Full URL = $row[r_url] <br />"; 
echo "File Name = $fileName <br />"; 
echo "Full Path = $path/$fileName"; 
echo "ID = $row[r_id] <br /> <br />"; 
$findFile = glob("$path/$fileName"); 


    if(!empty($findFile[0]) && !empty($row['r_id'])) { 
     echo "File was found";  
    } else { 
     echo "File not found"; 
    } 
} 
+0

Прекрасно работает для меня! Пожалуйста, покажите нам свои ** полные ** и ** реальные ** код – Rizier123

+0

Хорошо, я добавил полный код. – Exoon

+1

Каков результат: 'var_dump (" $ path/$ fileName ");' если вы делаете это перед вызовом glob? – Rizier123

ответ

0

Если вы работаете в Linux или Unix вам нужно бежать путь.

$findFile = glob("/var/www/html/files/1430\ -\ Theta\ \(J\)\(Independent\).nds"); 

Для этого лучше использовать команду escapeshellcmd. http://php.net/manual/en/function.escapeshellcmd.php

$findFile = escapeshellcmd($findFile); 
+0

Есть ли способ автоматически сделать это, поскольку я хватаю имя файла из базы данных? – Exoon

+0

Я только что опубликовал обновление, чтобы сделать это. –

+0

Спасибо за команду, у меня просто было дополнительное пространство в конце $ fileName. Это решено сейчас :) – Exoon

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