PHP URL kodlama / kod çözme yardıma ihtiyacınız var

1 Cevap php

Bir sayfada ben orada URL çözmek ve kullanıcıya teslim dosyasını başlatmak, başka bir sayfaya geçirilir / kodlama URL "maskeleme" ediyorum.

Ben kodlama / kod çözme URL için bazı işlevi bulundu, ama bazen kodlanmış URL "+" veya "/" içerir ve bağlantı bozuldu çözülür.

Ben SorguDizesi kullanamazsınız, bağlantı için "klasör yapısını" kullanmanız gerekir!

İşte kodlama işlevi:

$urll       = 'SomeUrl.zip';
$key        = '123'; 
$result     = '';


for($i=0; $i<strlen($urll); $i++) {
     $char = substr($urll, $i, 1);
     $keychar = substr($key, ($i % strlen($key))-1, 1);
     $char = chr(ord($char)+ord($keychar));
     $result.=$char;
    }
$result = urlencode(base64_encode($result));
echo '<a href="/user/download/'.$result.'/">PC</a>';

İşte kod çözme:

$urll       = 'segment_3'; //Don't worry for this one its CMS retrieving 3rd "folder"
        $key        = '123'; 
        $resultt    = '';
        $string     = '';

        $string     = base64_decode(urldecode($urll));


        for($i=0; $i<strlen($string); $i++) {
             $char = substr($string, $i, 1);
             $keychar = substr($key, ($i % strlen($key))-1, 1);
             $char = chr(ord($char)-ord($keychar));
             $resultt.=$char;
            }

        echo '<br />DEC: '. $resultt;

So how to encode and decode url. Thanks


EDIT:

Ben str_replace ile çözüldü :)

Kodladığınızda:

$result     = str_replace('%2B', '-', $result);
$result     = str_replace('%2F', '_', $result);

Çözerken:

$urll       = str_replace('-', '%2B', $urll);
$urll       = str_replace('_', '%2F', $urll);

1 Cevap

Bu sınıf http://www.phpclasses.org/package/1107-PHP-hide-link-parameters-.html nasıl kullanıcı parametreleri kodlamak ve gizlemek için size yardımcı olur