如何删除PHP中的string的第一个字符?

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

如何使用PHP ,删除第一个字符:

要从string的开头删除每个:你可以使用ltrim :

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

substr()函数可能会帮助你:

  $str = substr($str, 1); 

string从0开始索引,而这个函数的第二个参数是cutstart。 所以做1,第一个字符消失了。

使用substr :

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

执行时间为3个答案:

通过replace大小写删除第一个字母

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

0.39602184295654testing的执行时间: 0.39602184295654


删除substr()的第一个字母

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

执行5.153294801712次testing的执行时间: 5.153294801712


用ltrim()删除第一个字母

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

5.2393000125885testing的执行时间: 5.2393000125885


用preg_replace()删除第一个字母

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

6.8543920516968testing的执行时间: 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]) 

将无法正常工作,因为您无法取消设置string的一部分:

 Fatal error: Cannot unset string offsets 

更新

进一步testing后,我不build议再使用这个。 在MySQL查询中使用更新后的string时,对我造成了一个问题,并且改为substr修复了这个问题。 我想删除这个答案,但评论表明,它有点快,所以有人可能会使用它。 您可能会发现修剪更新的string可解决string长度问题。


有时你不需要一个function:

 $str[0] = ''; 

例如:

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

此方法修改现有的string,而不是创build另一个。

从string+空格的开始和结尾修剪数组中每个单词的出现次数,并根据正常的修剪()

 <?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)); 

也许,也有答案。