2011-03-08 25 views
2

我使用getimagesize來判斷圖像的高度和大小。麻煩用PHP getimagesize(url編碼空間問題)

當一個url有空格時,getimagesize echo是一個錯誤。我試過使用urlencode()來傳輸所有的url地址,但它仍然返回一個錯誤。我注意到,如果我只是將空間更改爲%20,則getimagesize運行正常。

我不知道爲什麼?

我也厭倦了使用$newurl = preg_replace(' ', '%20', $url);它echo'ed:

Warning: preg_replace() [function.preg-replace]: Empty regular expression 

那麼如何preg_replace正確。有沒有一種方法可以將getimagesize的URL正確傳輸,以便通過所有可能的測試用例。

感謝

回答

3

你應該使用str_replace(' ', "%20", $url)代替preg_replace(' ', '%20', $url);

+0

對,忘記'str_replace' – cj333 2011-03-08 21:18:24

3

urldecode()是要使用所有這些字符解碼回到你處理圖像之前已經轉換後,他們的功能。通過它運行包含URL的字符串。

0

你能後從當您嘗試使用進行urlencode一些示例代碼?另外,你不需要在最後一位使用preg_replace,你可以簡單地使用str_replace。

1

如果只有文件名包含空格,可以使用rawurlencode()。

$url = dirname($url) . '/'. rawurlencode(basename($url));