Мне нужно два улучшения для моих слизней:
Удаление специальных символов.
Преобразование гласных с метками ударения в гласные без меток.
Проблема в том, что мой веб-сайт генерирует URL-адреса с такими ссылками, как:
https://example.net/Toronto/product/férula-dental-limpieza-con-ul
https://cuponclub.net/Toronto/product/lifting-de-pestañas
Эти специальные символы, такие как «é» и «ñ» в URL-адресе, как правило, проблематичны для меня по многим различным причинам, например, когда я интегрирую URL-адреса в API, которые я использую, или даже при обмене ссылками ...
Я использую CakePHP 1.2
. Вот как я реализую слагов в коде:
class Product extends AppModel{
..........
..........
..........
var $actsAs = array(
'Sluggable' => array(
'label' => array(
'short_name'
),
'length' => 30,
'overwrite' => false
)
);
..........
..........
..........
}
В базе данных 'short_name'
- это поле, которое используется для генерации пули. Без CakePHP PHP уже предоставляет встроенные функции, такие как str_replace()
и preg_replace()
, и с помощью этих функций и регулярного выражения, такого как [^A-Za-z0-9\-]
, я мог бы удалить все специальные символы после замены всех пробелов дефисами. Но так как я использую CakePHP
, мне нужно использовать его синтаксис. Я читал https://github.com/msadouni/cakephp-sluggable-plugin и нашел эту информацию о label
:
метка: (массив | строка, необязательно) устанавливается на имя поля, которое содержит
строка, из которой создается слаг, или набор имен полей для
объединить для создания пули. ПО УМОЛЧАНИЮ: title
Можно ли рассматривать label
как строку и применять к ней такие функции, как str_replace()
и preg_replace()
?