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

时间:2011-01-09 09:48:40

标签: php string

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

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

13 个答案:

答案 0 :(得分:513)

substr()功能可能会对您有所帮助:

 $str = substr($str, 1);

字符串从0开始编制索引,此函数第二个参数采用cutstart。所以制作1,第一个字符消失。

答案 1 :(得分:288)

要从字符串的开头删除每个:,您可以使用ltrim

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

答案 2 :(得分:89)

使用substr

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

答案 3 :(得分:64)

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

答案 4 :(得分:24)

这是代码

$str = substr($str, 1); 

echo $str;

输出:

this is a applepie :)

答案 5 :(得分:9)

$str = substr($str, 1);

请参阅PHP manual example 3

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

注意:

unset($str[0]) 

将无法正常工作,因为您无法取消字符串的一部分: -

Fatal error: Cannot unset string offsets

答案 6 :(得分:9)

更新

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


有时您不需要功能:

$str[0] = '';

例如:

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

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

答案 7 :(得分:8)

接受的答案:

$str = ltrim($str, ':');

有效,但如果一开始有多个:,则会删除多个$str = substr($str, 1);

if ($str[0] === ':')
    $str = substr($str, 1);

将从头开始删除任何字符。

然而,

export let ButtonClickHandlers = {
    refreshDatabase: (url: string) => {
        service.fetchJson<any>(url)
        .then(res => {
            if(res.isSuccessStatusCode){
              //update state
            }
            else{
              //update state
            }
        });
    },
    //more functions to be added later
}

完美无缺。

答案 8 :(得分:3)

您可以使用sbstr()函数

$amount = 1;   //where $amount the the amount of string you want to delete starting  from index 0
$str = substr($str, $amount);

答案 9 :(得分:2)

根据正常trim()

修剪数组中每个单词的出现次数,从字符串的开头和结尾+空格和可选的额外单个字符开始
<?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"
?>

答案 10 :(得分:1)

该代码适用于我。

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

也许,也有答案。

答案 11 :(得分:0)

使用mb_substr函数

    mb_substr("我abc", 1);

答案 12 :(得分:0)

要在PHP中删除字符串的第一个字符,

$string = "abcdef";     
$new_string = substr($string, 1);

echo $new_string;
Generates: "bcdef"