Вопрос

Я вставляю поле псевдонима для моей базы данных с именем $ alias как мне закодировать (я использую php для вставки mysql) удалить все пробелы и заменить пробел на "-" (пытаюсь изменить его на "weburl format", т.е. удалить пробелы)

Спасибо

Это было полезно?

Решение

Вот метод, который я использую для сортировки строк для URL-адресов SEF:

    $slug = trim(strtolower($value));
    $slug = preg_replace('/[^a-z0-9 _-]/', '', $slug);
    return preg_replace('/\s+/', '-', $slug);

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

Пожалуйста, обратите внимание, что это НЕ Юникод и даже не полный стандарт безопасности ISO-8891, ну, это так, но он удалит все, что не является a-z.То есть, возможно, вам потребуется заранее нормализовать строку (т. Е. Заменить символы с ударением на их закрывающий эквивалент в формате ASCII). Есть ряд вопросов и ответов SO, связанных с этим, которые я видел раньше, но в данный момент я не могу их найти.Я отредактирую их здесь, если наткнусь на что-нибудь.

Другие советы

Для простого удаления пробелов вы хотите, чтобы метод str_replace ( str_replace ).Однако при работе с URL-адресами вы, возможно, захотите рассмотреть функция urlencode и необработанный код а также методы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top