2016-05-18 4 views
0

Я стараюсь скрывать нормальный английский текст по URL-адресу.PHP: Преобразование английского нормального текста в URL-адрес

Например

  • this is a text! ->this-is-a-text
  • this is a text&image ->this-is-a-text-image
  • are you ok? ->are-you-ok

Так что я пытаюсь преобразовать его с этим кодом:

str_replace("-", "+", urlencode(trim($text))); 

Это не тайными + к -

Кроме того, кажется, что не работает хорошо, например, для «/» и «&» (для некоторой строки dosn't работы.)

Есть лучший способ?

+7

http://stackoverflow.com/questions/2955251/php-function-to-make-slug-url-string –

ответ

2

Для ваших примеров это должно работать:

$result = preg_replace('/[^a-z0-9]+/i', '-', $text); 

Если вы хотите, чтобы все строчные затем использовать strtolower($text) вместо этого, то нет необходимости в i модификатор.

+0

Быстрое шифрование, именно то, что я думал, вот 101 из них https://regex101.com/г/vU1lP6/1. – chris85

+1

'$ result = trim (preg_replace ('/ [^ a-z0-9] +/i', '-', strtolower ($ text)), '-');' - добавил '+' и 'strtolower' ; отделка – luchaninov

+0

@luchaninov: Спасибо! – AbraCadaver

1

Этот процесс обычно называется «создание пули». Для этого вы можете найти различные подготовленные функции. Что касается рассмотрения Unicode, функция может быть более сложной.

Однако ваш вопрос ответил здесь: PHP function to make slug (URL string)

 Смежные вопросы

  • Нет связанных вопросов^_^