Зенд говорит, что этот URI недействителен - PullRequest
0 голосов
/ 15 ноября 2011

Я создаю канал с помощью Zend Framework.

Когда я устанавливаю ссылку, подобную приведенной ниже, я получаю сообщение об ошибке

$feed = new Zend_Feed_Writer_Feed;
$url = "http://www.example.com/search?s=chris|gayle|pics&device=1"
$feed->setLink($url);

Я искал в Zend_Uri.php и Http.php, я не смог выяснить проблему.

исключение 'Zend_Feed_Exception' с сообщением 'Неверный параметр: Параметр должен быть непустой строкой и действительным URI / IRI '

Ответы [ 3 ]

3 голосов
/ 15 ноября 2011

| не допускается. Вместо этого используйте %7C.

Для получения дополнительной информации см. http://en.wikipedia.org/wiki/Percent-encoding#Types_of_URI_characters

Для кодирования URL используйте urlencode. Это обеспечит правильное кодирование всех символов в стандартный URI.

http://php.net/manual/en/function.urlencode.php

2 голосов
/ 15 ноября 2011

Согласно Какие символы делают URL недействительным? | не является допустимым символом.

Чтобы эти символы были в URL, вы должны закодировать свой URL. Вы можете использовать urlencode метод для этого.

2 голосов
/ 15 ноября 2011

Возможно, вам понадобится urlencode значений в вашем URI

Правильный URI будет "http://www.example.com/search?s=chris%7Cgayle%7Cpics&device=1"

Просто используйте urlencode () или rawurlencode (); для кодирования частей URI.

$url = "http://www.example.com/search?s=".urlencode("chris|gayle|pics")."&device=1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...