Конвертация символов

Статус
В этой теме нельзя размещать новые ответы.

new_forward

Профессор
Регистрация
5 Май 2008
Сообщения
673
Реакции
44
Доброго времени суток!

Как из вот такого запроса:

Код:
http://site.ru/list/?&category_id=15§ion_id=1&subscribe_id=&filter_id=&mark_id=0&year%5B1%5D=1993&year%5B2%5D=&color_id=&price_usd%5B1%5D=100000&price_usd%5B2%5D=¤cy_key=RUR&body_key=&run%5B1%5D=&run%5B2%5D=&engine_key=0&engine_volume%5B1%5D=&engine_volume%5B2%5D=&drive_key=&engine_power%5B1%5D=&engine_power%5B2%5D=&transmission_key=0&used_key=5&wheel_key=&custom_key=1&available_key=1&change_key=1&owner_pts=&stime=2&country_id=1&has_photo=0®ion%5B%5D=87®ion_id=87&sort_by=2&city_id=1123&output_format=1&client_id=1&extras%5B1%5D=0&extras%5B2%5D=0&extras%5B3%5D=0&extras%5B4%5D=0&extras%5B5%5D=0&extras%5B6%5D=0&extras%5B7%5D=&extras%5B8%5D=0&extras%5B9%5D=0&extras%5B10%5D=0&extras%5B11%5D=0&extras%5B12%5D=&extras%5B13%5D=0&extras%5B14%5D=0&extras%5B15%5D=0&extras%5B16%5D=0&extras%5B17%5D=0&extras%5B18%5D=&extras%5B19%5D=&extras%5B20%5D=&extras%5B21%5D=&extras%5B22%5D=&extras%5B23%5D=0&extras%5B24%5D=0&extras%5B25%5D=&extras%5B26%5D=&extras%5B27%5D=0&extras%5B28%5D=0&extras%5B29%5D=&submit=%D0%9D%D0%B0%D0%B9%D1%82%D0%B8

в котором есть такие символы §, ®, =¤

сделать вот такой:

Код:
http://site.ru/list/?&category_id=15%C2%A7ion_id=1&subscribe_id=&filter_id=&mark_id=0&year%5B1%5D=1993&year%5B2%5D=&color_id=&price_usd%5B1%5D=100000&price_usd%5B2%5D=%C2%A4cy_key=RUR&body_key=&run%5B1%5D=&run%5B2%5D=&engine_key=0&engine_volume%5B1%5D=&engine_volume%5B2%5D=&drive_key=&engine_power%5B1%5D=&engine_power%5B2%5D=&transmission_key=0&used_key=5&wheel_key=&custom_key=1&available_key=1&change_key=1&owner_pts=&stime=2&country_id=1&has_photo=0%C2%AEion%5B%5D=87%C2%AEion_id=87&sort_by=2&city_id=1123&output_format=1&client_id=1&extras%5B1%5D=0&extras%5B2%5D=0&extras%5B3%5D=0&extras%5B4%5D=0&extras%5B5%5D=0&extras%5B6%5D=0&extras%5B7%5D=&extras%5B8%5D=0&extras%5B9%5D=0&extras%5B10%5D=0&extras%5B11%5D=0&extras%5B12%5D=&extras%5B13%5D=0&extras%5B14%5D=0&extras%5B15%5D=0&extras%5B16%5D=0&extras%5B17%5D=0&extras%5B18%5D=&extras%5B19%5D=&extras%5B20%5D=&extras%5B21%5D=&extras%5B22%5D=&extras%5B23%5D=0&extras%5B24%5D=0&extras%5B25%5D=&extras%5B26%5D=&extras%5B27%5D=0&extras%5B28%5D=0&extras%5B29%5D=&submit=%D0%9D%D0%B0%D0%B9%D1%82%D0%B8
 
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Не не получается... Если урл открыть в браузере и скопировать то получится второй вариант а urlencode делает не такие символы...
 
rawurlencode попробуйте. И, совет, смотрите полученные урлы сразу после преобразования. Иначе веб-сервера с ссылками всякие весёлые вещи вытворяют.
 
А разница в urlencode and rawurlencode случаем не только в "+" and "%20" ? Или у меня маны от индусов ?
 
Для просмотра ссылки Войди или Зарегистрируйся
А вы хотябы в курсе что это совершенно разные 2 ссылки ?
1327971945-clip-76kb.jpg

То есть как видете между ?&category_id=15 и §ion_id=1&s есть ещё 1 символ ! "В"

А вообще проблема у вас в том что вы скорее всего просто в наглую не думая сделали urlencode('ССЫЛКА'); и получили полного Г D Потому как и нужное и не нужное сконвертили.

Вот немного говнокод но работает (почти всегда работает)

PHP:
        $str='http://'.str_replace(
            array('%3F', '%26', '%3D', '%2F'),
            array('?', '&', '=', '/'),
            rawurlencode(
                rawurldecode(
                    str_replace('http://',
                    '',
                    $str)
                )
            )
        );
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху