2012-05-01 3 views
2

У меня есть строка, содержащая некоторый текст, последний символ может (может быть) быть косой чертой, которую я не хочу. Как удалить его, если он существует?Удалить последний символ строки (если существует)

Действительно ли это «правильный» способ?

if(substr($str, -1) == "/") $str = rtrim($str, '/'); 
+0

langage, с которым вы кодируете? – Aminesrine

+2

@Bouaziz :) Это PHP, который уже помечен как непосредственно ниже вопроса. – Lion

ответ

8

Используйте rtrim без какого-либо условия, оно короче и, вероятно, быстрее. Добавленный if является шумом и ничего не предлагает.

+0

И примерно несколько символов? Например, мне нужно вырезать «1.» или «2.» и т. д. – user1954544

+0

@ user1954544 Я бы пошел с регулярным выражением, что-то вроде 'preg_replace ('/^\ d + \ ./', '', $ input)' – Jon

1

если у вас есть строка $ строка попытаться использовать

substr_replace($string ,"",-1); 

или

substr($string, 0, -1); 

или

mb_substr($string, 0, -1); 

будет удалить последний символ из $ строки.

0

Это заменяет последний символ URL, если это «/»

concat(LEFT(url, LENGTH(url)-1),replace(right(url, 1),'/','')) 
0

В моем случае мне нужно удалить severalsymbols как «1.» или «2» и т.д. Вот код:

/** 
* @param string $string 
* 
* @return string 
*/ 
private function cutNumbers($string) 
{ 
    for ($i = 1; $i < 20; $i++) { 
     $position = strpos($string, $i . '.'); 

     if ($position === 0) { 
      $string = substr($string, 2); 
     } 
    } 

    return $string; 
} 

PS: Я знаю, что есть лучшее решение, но в любом случае - исправление поможет кому-то.

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