Bir url olarak kodlanmış url içeren bir url UrlEncode mümkün mü?

4 Cevap php

Ben facebook, twitter, lezzetli hisse bağlantılar kullanan bir web sitesi var. Onlar paylaşmak istediğiniz web sitesinin aa url kodlu url içerir. Sorun daha sonra php yönlendirme sayfası aracılığıyla facebook / twitter / lezzetli url göndermek istiyorum.

Bir kodlanmış url içinde bir url kodlamak için çalışacak mı? Yan etkileri olacak mı?

Sorumu basitleştirmek için:

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

4 Cevap

Sen yüzde kodlama ile bir dize birden çok kez kodlamak ve bu kez aynı miktarda çözerek orijinal değerini alabilirsiniz:

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

İşte $str daha sonra üç kez kodlanmış ve değeri üç kez çözülür. Bu tekrar kodlama ve kod çözme çıkış değerine aynıdır $str.

Yani bu deneyin:

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

Bu urlkodçözümü ikinci bir katman eklemek için tamam. Urlkodçözümü fikri bir metin dizesi içinde mevcut olabilecek herhangi bir özel karakterleri misinterpreting gelen sunucu önlemek için olduğunu. Ancak, alıcı komut urlencode fazladan bir katman () beklemek gerekir, ve buna göre hareket.

Eğer dize urlencoded olmuştur biliyorsanız Veya, sadece olduğu gibi-bunu iletmekten değil mi? Başka URLencoding gereklidir.

Ya da sadece o bütün dize urlencode, başlığı ve URL UrlDecode.

Siz istediğiniz gibi yinelemeli URL'yi birçok kez kodlamak gerekir. Eğer / art arda gibi bir karakteri kodlamak varsa alırsınız:

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

vb