2015-08-03 4 views
0

У меня есть этот код, который находит флаг (который является файлом GIF в каталоге «/ flags») для страны и отображает флаг, но у меня есть проблема с конкретной страной, содержащей ' (одинарная кавычка или апостроф) в имени файла.Dealing With Single Quote In Filename

$country = "australia"; 
$flag = (glob("flags/$country.gif")); 

Флаги названы точно так же, как название страны ($country), а именно: australia.gif.

Этот код отлично работает, если только он не встречает страну «Кот-д'Ивуар».

$country = "cote d'ivoire"; 
$flag = (glob("flags/$country.gif")); 

В конце концов, для GIF-файла указан следующий URL-адрес. "/ flags/cote% 20d"

Как мне обойти это '?

Я пробовал htmlspecialchars и urlencode безрезультатно.

Я сделал обходной способ создания нового файла флага GIF с именем «cotedivoire.gif» и добавил следующий код, но это не идеально. Разумеется, должно быть лучшее решение.

if ($country == "cote d'ivoire") { 
    $flag = (glob("flags/cotedivoire.gif")); 
} 

Любые идеи, пожалуйста?

+1

Try как 'Cote d \ 'ivoire' –

+0

см эту ссылку: http://php.net/manual/en/function .htmlspecialchars-decode.php –

+0

@CrazzySkulll '% 20' - это URL-кодирование, а не объект HTML. – Barmar

ответ

0

Вы должны избежать кавычки в имени файла строку, как это:

Example: "file'n/ame.jpg"; 
Solution: "file\'n\/ame.jpg"