我有一个输入字符串:
$str = ':this is a applepie :) ';
我怎么能删除第一个发生:用PHP?
期望输出:这是一个苹果馅饼:)
我有一个输入字符串:
$str = ':this is a applepie :) ';
我怎么能删除第一个发生:用PHP?
期望输出:这是一个苹果馅饼:)
当前回答
使用mb_substr函数
mb_substr("我abc", 1);
其他回答
使用字符串的子串:
$str = substr($str, 1); // this is a applepie :)
$str = substr($str, 1);
参见PHP手册示例3
echo substr('abcdef', 1); // bcdef
注意:
unset($str[0])
将不会工作,因为你不能取消字符串的一部分:-
Fatal error: Cannot unset string offsets
substr()函数可能会帮助你:
$str = substr($str, 1);
字符串从0开始索引,该函数的第二个参数接受cutstart。所以把它设为1,第一个char就没有了。
执行时间为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秒
公认的答案是:
$str = ltrim($str, ':');
工作,但将删除多个:当有多于一个在开始。
$str = substr($str, 1);
将从起始位置删除任何字符。
然而,
if ($str[0] === ':')
$str = substr($str, 1);
完美的工作。