Yii - сделать строку пригодной для использования в URL или имени файла - PullRequest
2 голосов
/ 08 февраля 2012

Содержит ли структура Yii функцию, которая может сделать строку пригодной для использования в URL или имени файла?

Например: Health+%26+Safety+franchises = health-safety-franchises

Так что-то похожее на: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#slugify

Ответы [ 4 ]

3 голосов
/ 09 февраля 2012

slugify в Django Преобразует в нижний регистр, удаляет несловарные символы (буквенно-цифровые и подчеркивания) и преобразует пробелы в дефисы.Также удаляет начальные и конечные пробелы.
Ниже приведены функции в PHP для выполнения тех же задач.

$slug = preg_replace('@[\s!:;_\?=\\\+\*/%&#]+@', '-', $str);
      //this will replace all non alphanumeric char with '-'
$slug = mb_strtolower($slug);
      //convert string to lowercase
$slug = trim($slug, '-');
      //trim whitespaces

Вам необходимо определить функцию в каком-либо контроллере, чтобы использовать ее в Yii

1 голос
/ 09 февраля 2012

До сих пор не совсем ясно, чего именно вы пытаетесь достичь. Если вы хотите использовать строку, содержащую символы, которые не поддерживаются браузером, вам следует изучить функции php, которые могут сделать это за вас.

Возможно http://php.net/manual/en/function.urlencode.php (есть еще, зависит то, что вам нужно)

Если вы хотите использовать свою собственную пользовательскую кодировку, укажите, что вы пытаетесь достичь, и я могу помочь.

0 голосов
/ 23 октября 2017

Взгляните на этот класс в yii2

https://github.com/yiisoft/yii2/blob/master/framework/behaviors/SluggableBehavior.php

и посмотрите, как он использует эту библиотеку http://www.yiiframework.com/doc-2.0/yii-helpers-inflector.html метод slug

0 голосов
/ 09 февраля 2012

Вы можете добавить поведение к модели для этого - этот плагин сделает тяжелую работу за вас.

...