Как удалить первый символ строки в PHP?

$str=':this is a applepie :) '; 

Как использовать PHP , удалить первый символ :

Чтобы удалить все : начиная с строки, вы можете использовать ltrim :

 $str = '::f:o:'; $str = ltrim($str, ':'); var_dump($str); //=> 'f:o:' 

Функция substr() , вероятно, поможет вам здесь:

  $str = substr($str, 1); 

Строки индексируются начиная с 0, и этот второй параметр принимает режущий инструмент. Итак, сделайте это 1, и первый символ исчез.

Используйте substr :

 $str = substr($str, 1); // this is a applepie :) 

Время Exec для 3 ответов:

Удалите первую букву, заменив корпус

 $str = "hello"; $str[0] = ""; // $str[0] = false; // $str[0] = null; // replaced by  , but ok for echo 

Время Exec для 1.000.000 тестов: 0.39602184295654 sec


Удалите первую букву с помощью substr ()

 $str = "hello"; $str = substr($str, 1); 

Время Exec для 1.000.000 тестов: 5.153294801712 сек.


Удалите первую букву с помощью ltrim ()

 $str = "hello"; $str= ltrim ($str,'h'); 

Время Exec для 1.000.000 тестов: 5.2393000125885 сек.


Удалите первую букву с preg_replace ()

 $str = "hello"; $str = preg_replace('/^./', '', $str); 

Время Exec для 1.000.000 тестов: 6.8543920516968 сек.

Вот код

 $str = substr($str, 1); echo $str; 

Вывод:

 this is a applepie :) 
 $str = substr($str, 1); 

См. Пример руководства PHP 3

 echo substr('abcdef', 1); // bcdef 

Заметка:

 unset($str[0]) 

не будет работать, так как вы не можете отключить часть строки:

 Fatal error: Cannot unset string offsets 

Обновить

После дальнейших тестов я больше не рекомендую использовать это. Это вызвало проблему для меня при использовании обновленной строки в запросе MySQL, и смена на substr исправила проблему. Я думал об удалении этого ответа, но комментарии предполагают, что он быстрее, так что кто-то может использовать его. Вы можете найти, что обрезка обновленной строки разрешает проблемы с длиной строки.


Иногда вам не нужна функция:

 $str[0] = ''; 

Например:

 $str = 'AHello'; $str[0] = ''; echo $str; // 'Hello' 

Этот метод изменяет существующую строку, а не создает другую.

Обрезает вхождения каждого слова в массиве от начала и до конца строки + пробел и необязательно дополнительные одиночные символы в соответствии с обычной обрезкой ()

 <?php function trim_words($what, $words, $char_list = '') { if(!is_array($words)) return false; $char_list .= " \t\n\r\0\x0B"; // default trim chars $pattern = "(".implode("|", array_map('preg_quote', $words)).")\b"; $str = trim(preg_replace('~'.$pattern.'$~i', '', preg_replace('~^'.$pattern.'~i', '', trim($what, $char_list))), $char_list); return $str; } // for example: $trim_list = array('AND', 'OR'); $what = ' OR x = 1 AND b = 2 AND '; print_r(trim_words($what, $trim_list)); // => "x = 1 AND b = 2" $what = ' ORDER BY x DESC, b ASC, '; print_r(trim_words($what, $trim_list, ',')); // => "ORDER BY x DESC, b ASC" ?> 

Код работает хорошо для меня.

 $str = substr($str ,-(strlen($str)-1)); 

Может быть, также и ответы.