我有一个输入字符串:

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

我怎么能删除第一个发生:用PHP?

期望输出:这是一个苹果馅饼:)


当前回答

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

 $str = substr($str, 1);

字符串从0开始索引,该函数的第二个参数接受cutstart。所以把它设为1,第一个char就没有了。

其他回答

$str = substr($str, 1);

参见PHP手册示例3

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

注意:

unset($str[0]) 

将不会工作,因为你不能取消字符串的一部分:-

Fatal error: Cannot unset string offsets

使用字符串的子串:

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

执行时间为3个答案:

通过替换大小写来删除第一个字母

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

执行1.000.000次测试的时间:0.39602184295654秒


删除substr()的第一个字母

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

1.000.000次测试的执行时间:5.153294801712秒


用ltrim()删除第一个字母

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

1.000.000次测试的执行时间:5.2393000125885秒


使用preg_replace()删除第一个字母

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

1.000.000次测试的执行时间:6.8543920516968秒

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

 $str = substr($str, 1);

字符串从0开始索引,该函数的第二个参数接受cutstart。所以把它设为1,第一个char就没有了。

更新

经过进一步的测试,我不建议再使用它。当我在MySQL查询中使用更新的字符串时,它导致了一个问题,并更改为substr解决了这个问题。我想过删除这个答案,但评论表明它以某种方式更快,所以有人可能会用到它。您可能会发现修改更新的字符串可以解决字符串长度问题。


有时候你不需要一个函数:

$str[0] = '';

例如:

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

此方法修改现有字符串,而不是创建另一个字符串。