Удаление последнего символа строки, ЕСЛИ это переменная $ - PullRequest
3 голосов
/ 16 января 2011

Я создал небольшой скрипт для преобразования заголовков в URL-адреса.

т.е.:

'I am a title'

становится

'I_am_a_title'

Мой сценарий в основном проходити превращает пробелы, апострофы, запятые и т. д. в подчеркивание.

Проблема в том, что иногда мой URL получается так:

'i_am_a_title_'

с последующим подчеркиванием ...

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

Я посмотрел в strrchr(), но мне кажется, что я врезаюсь в стену моего собственного понимания.

Как этого добиться?

Ответы [ 5 ]

13 голосов
/ 16 января 2011

PHP * trim() функция будет делать то, что вам нужно, по обе стороны строки:

$slug = trim($slug, '_');

Вы можете даже запустить это перед заменой специальных символов на подчеркивание, еслиВы хотели, так как функция может обрабатывать обрезку нескольких различных символов.

4 голосов
/ 16 января 2011

После того как вы выполнили очистку, вы можете просто использовать этот код для удаления завершающего подчеркивания:

$mystr = rtrim($text, '_');
2 голосов
/ 16 января 2011
$without_starting_or_ending_underscores = trim($original, '_');

Если вы хотите удалить только конечные, используйте rtrim().

1 голос
/ 16 января 2011

Как то так,

YOUR_STRING=rtrim(YOUR_STRING,'_');

rtrim удалит указанные символы из конца строки. http://php.net/manual/en/function.trim.php

/ Viktor

1 голос
/ 16 января 2011

Проверить rtrim .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...