Urlencode

Discussion in 'PHP' started by Doom123, 20 Nov 2011.

  1. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Привет! подскажите плз как с помощью PHP урл кодировать только неанглиские буквы и те символы которые обязаны быть кодырованы.... как это делает Google Chrome при копировании URL

    Тоесть , уро вида

    Code:
    http://tema357.com/blog/2011/11/«национальная-программа-содействия/
    превратить в это

    Code:
    http://tema357.com/blog/2011/11/%C2%AB%D0%BD%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0-%D1%81%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F/
    а не в это, как эделает urlencode()

    Code:
    http%3A%2F%2Ftema357.com%2Fblog%2F2011%2F11%2F%C2%AB%D0%BD%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0-%D1%81%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F%2F

    зарание благодарен ! =)
     
  2. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Кодируй нужную часть ссылки, в чем проблема-то.
     
  3. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    если бы я знал вид ссылки то было бы всё просто ... но я не знаю как ссылка будет выглядеть ..
     
  4. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    $string = 'http://tema357.com/blog/2011/11/'.urlencode('«национальная-программа-содействия').'/';
     
    5 people like this.
  5. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Если вид ссылки неизвестен, то обрабатывай урленкодом все символы между слешами:

    http://tema357.com/blog/2011/11/«национальная-программа-содействия/

    обрабатываешь "blog", "2011", "11", "«национальная-программа-содействия" по отдельности и формируешь новую ссылку.
     
    1 person likes this.
  6. flash.kosta

    flash.kosta New Member

    Joined:
    4 Nov 2011
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Используй регулярки для отделения нужной части.
     
  7. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    PHP:
    <?
    $uri array_filter(explode('/'str_replace('http://''''http://tema357.com/blog/2011/11/«национальная-программа-содействия/')));

    foreach (
    $uri as $key => $page)
    {
        if (
    $key)
        {
            
    $string .= urlencode($page) . '/';
        }
        else
        {
            
    $string 'http://' $page '/';
        }
    }

    echo 
    $string;
    ?>
    Если возможен вариант с протоколом https - можно регулярку использовать или 2 раза str_replace.
     
    1 person likes this.
  8. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    всем спасибо ... =)

    FindeR думаю у меня попроще =)
    PHP:
    $url urlencode($url);
    $url str_ireplace('%2F','/',$url);
    $url str_ireplace('%3A',':',$url);
     
    #8 Doom123, 21 Nov 2011
    Last edited: 21 Nov 2011
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Doom123 точки еще, и можно передавать массивы как параметры
     
    _________________________
  10. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Ты прав это не идеал ... =)