проблема с php getimagesize (URL кодировать проблемы с пространством) - PullRequest
2 голосов
/ 09 марта 2011

Я использую getimagesize для оценки высоты и размера изображения.

Когда в URL есть пробел, эхо getimagesize является ошибкой. Я пытался использовать urlencode() для передачи всех URL-адресов, он по-прежнему возвращает ошибку. Я заметил, что если я просто поменяю пространство на %20, getimagesize будет работать нормально.

Понятия не имею, почему?

Я также устал использовать $newurl = preg_replace(' ', '%20', $url); Это повторилось:

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

Так как же preg_replace правильно. И есть ли способ правильно передать URL с помощью getimagesize, чтобы он прошел все возможные тестовые случаи.

Спасибо

Ответы [ 4 ]

3 голосов
/ 09 марта 2011

Вы должны использовать str_replace(' ', "%20", $url) вместо preg_replace(' ', '%20', $url);

3 голосов
/ 09 марта 2011

urldecode() - это функция, которую вы хотите использовать для декодирования всех этих символов обратно после их преобразования перед обработкой изображения.Запустите через него строку, содержащую URL.

1 голос
/ 01 мая 2015

Если только имя файла содержит пробелы, вы можете использовать rawurlencode ().

$url = dirname($url) . '/'. rawurlencode(basename($url));
0 голосов
/ 09 марта 2011

Можете ли вы опубликовать пример кода, когда вы пытались использовать urlencode?Кроме того, вам не нужно использовать preg_replace для последнего бита, вы можете просто использовать str_replace.

...