2014-10-08 4 views
0

Я использую метод PHP GET для захвата имени файла, которое затем помещается в команду get_file_contents. Если это возможно, я хотел бы игнорировать случай с буквой, чтобы мои URL-адреса были более чистыми.Проблема с верхним или нижним регистром с использованием get_file_contents php

Например, example.com/file.php?n=File-Name будет работать, но example.com/file.php?n=file-name не будет работать, используя приведенный ниже код. Я чувствую, что это должно быть легко, но я подхожу. Есть предположения?

$file = $_GET['n']; 
$file_content = file_get_contents($file); 
+1

* nix или windows platform? –

+0

Это сервер Apache – internetjason

+0

Я понимаю, что это apache, но на какой платформе он работает? Windows игнорирует регистр, пока вы должны знать точное имя файла на системах * nix (а также Mac). –

ответ

0

Строчные все ваши имена файлов и использование:

file_get_contents(strtolower($file)); 

(я надеюсь, что вы знаете о некоторых risks, участвующих в использовании этого.)

+0

Существует приложение iOS, которое загружает эти файлы для меня, поэтому я не могу изменить их на нижний регистр. Я надеялся выяснить обходное решение. – internetjason

0

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

Но вы не объясняете, откуда взялись URL загрузки. Если вы уже знаете правильные имена файлов и хотите генерировать более красивые URL-адреса, вы можете сохранить список истинных имен путей и просмотреть их, когда получите URL-адрес, упорядоченный по нормам (вы можете даже полностью переименовать их, обфускать и т. Д.). .)

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