PHP минус символ в URL (rawurlencode против urlencode) - PullRequest
0 голосов
/ 28 февраля 2011

Я пытался использовать rawurlencode и urlencode, оба дают мне «&», а другие «+».

Я спрашиваю, есть ли PHP-функция, которая помещает «-» междуслова, как на переполнение стека?

Спасибо

Ответы [ 4 ]

1 голос
/ 28 февраля 2011

Если это все, что вы пытаетесь сделать, вы можете просто использовать:

    $url = str_replace(" ", "-", $url);

И затем использовать urlencode для его кодирования после этого.Например:

    function myurlencode($url)
    {
        return urlencode(str_replace(" ", "-", $url));
    }

РЕДАКТИРОВАТЬ

И, согласно руководству PHP , он заменяет all non-alphanumeric characters except -_. with a percent (%) sign followed by two hex digits and spaces encoded as plus (+) signs.

0 голосов
/ 28 февраля 2011

Хорошо, как уже упоминалось, url_encode не зависит от создания URL-адресов из текста, то есть для того, чтобы сделать их оптимизированными для SEO. Обычно это называется slugify url. Я думаю, это вообще то, что вы ищете, верно?

Вот пример такого метода http://sourcecookbook.com/en/recipes/8/function-to-slugify-strings-in-php

0 голосов
/ 28 февраля 2011

Если вы просто хотите заменить класс символов другим, используйте str_replace

Например:

$newURL = str_replace(" ", "-", $oldURL);

будет делать то, что вы хотите

urlencode - это очень специфический набор замен символов, которые соответствуют стандарту для кодирования URL.

0 голосов
/ 28 февраля 2011

rawurlencode и urlencode предназначены для правильного формата URL.Если вы хотите заменить пробелы на тире, вам нужно использовать str_replace:

str_replace(" ", "-", $url);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...