2011-01-16 2 views
2

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

т.е.

'I am a title' 

становится

'I_am_a_title' 

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

Проблема заключается в том, иногда конец моего URL, вот так:

'i_am_a_title_' 

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

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

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

Как это делается?

+0

Вы, вероятно, хотите использовать [ 'подрезать()'] команды (http://php.net/manual/en/function.trim.php) на строку, прежде чем обрабатывать Это. 'trim()' удаляет пробелы (и другие символы, которые вы указываете) в начале и в конце строки. –

ответ

13

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

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

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

3

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

$mystr = rtrim($text, '_'); 
2
$without_starting_or_ending_underscores = trim($original, '_'); 

Если вы хотите, чтобы удалить замыкающие из них, использовать rtrim() вместо этого.

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