2015-08-03 34 views
0

我有这个代码找到一个国家的标志(这是一个GIF文件在“/ flags”目录中)并显示该标志,但我遇到了一个包含' (单引号或撇号)的文件名。处理文件名中的单引号

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

的标志命名完全一样的国名($country),即:australia.gif

此代码正常工作,除非遇到“科特迪瓦”国家。

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

我最终得到了以下标志GIF的URL。 “/ flags/cote%20d”

如何解决此问题'

我试过htmlspecialcharsurlencode无济于事。

我做了一个解决方法,创建一个名为“cotedivoire.gif”的新GIF标志文件并添加了下面的代码,但这并不理想。当然,必须有更好的解决方案。

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

有什么想法吗?

+1

尝试为'科特迪瓦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" 
相关问题