Возможно ли urlencode URL-адрес, содержащий URL-адрес, кодированный URL-адресом?

У меня есть веб-сайт, который использует facebook, twitter, delicious share links. Они содержат URL-адрес, кодированный url сайта, который вы хотите поделиться. Проблема в том, что я хочу отправить facebook / twitter / delicious url через страницу перенаправления php.

Будет ли он работать для кодирования URL-адреса в кодированном URL-адресе? Будут ли побочные эффекты?

Чтобы упростить мой вопрос:

www.website.com/redirect.php?url=" URLENCODED (http://www.facbook.com/sharer.php?t='URLENCODED(title)'&u='URLENCODED(http://www.hotel.com)') 

Solutions Collecting From Web of "Возможно ли urlencode URL-адрес, содержащий URL-адрес, кодированный URL-адресом?"

Вы можете кодировать строку несколько раз с процентной кодировкой и получать исходное значение, декодируя ее столько же раз:

 $str = implode(range("\x00", "\xFF")); var_dump($str === urldecode(urldecode(urldecode(urlencode(urlencode(urlencode($str))))))); 

Здесь значение $str кодируется три раза, а затем декодируется три раза. Результат этого повторного кодирования и декодирования идентичен значению $str .

Поэтому попробуйте следующее:

 'http://example.com/redirect.php?url='.urlencode('http://www.facbook.com/sharer.php?t='.urlencode('title').'&u='.urlencode('http://www.hotel.com')) 

Вы должны иметь возможность рекурсивно кодировать URL столько раз, сколько хотите. Если вы кодируете символ типа / повторно, вы получите:

 0: / 1: %3F 2: %%3F 3: %%%%3F 

и т.п.

Можно добавить второй слой URLEncoding. Идея URLEncoding заключается в том, чтобы помешать серверу неправильно интерпретировать любые специальные символы, которые могут присутствовать в текстовой строке. Тем не менее, сценарий приема должен ожидать дополнительный уровень urlencode () и действовать соответственно.

Или, если вы знаете, что строка была указана на urlencoded, вы не могли бы просто передать ее как есть? Никакого дальнейшего urlencoding не требуется.

Или просто urldecode заголовок и URL, а затем urlencode всю строку.

Как уже упоминалось ранее, вы можете кодировать URL-адреса столько, сколько хотите, но вы должны знать, сколько раз вы кодируете данные url, тем больше он увеличится по длине, может быть два раза в два раза. который будет раздражать пользователей, если он слишком длинный. также может быть ограничение на длину URL в некоторых браузерах. Также на стороне сервера будет накладное кодирование и декодирование данных. Короче говоря, вы действительно должны быть уверены, что вам нужно это до кодирования / декодирования несколько раз.