web-dev-qa-db-ja.com

PHPで文字列の最初の文字を削除する方法

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

使い方 PHP 、最初の文字を削除する:

225
yuli chika

文字列の先頭からすべての:を削除するには、 ltrim を使用します。

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

substr() 関数はおそらくここであなたを助けるでしょう:

 $str = substr($str, 1);

文字列は0から始まるインデックスが付けられ、この関数の2番目のパラメータはカットスタートを取ります。だからそれを1にすると、最初の文字は消えてしまいます。

515
mario

substr を使用してください。

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

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

64
Hayenn

これがコードです

$str = substr($str, 1); 

echo $str;

出力:

this is a applepie :)
24
Tarun modi

更新

さらなるテストの後、私はもうこれを使うことを勧めません。 MySQLクエリで更新された文字列を使用していてsubstrに変更すると問題が解決しました。私はこの答えを削除することを考えました、しかし、コメントはそれがどういうわけかより速いのでそれを使う人がいるかもしれないと示唆します。更新された文字列をトリミングすると、文字列長の問題が解決することがあります。


時々あなたは関数を必要としません:

$str[0] = '';

例えば:

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

このメソッドは、別の文字列を作成するのではなく、既存の文字列を修正します。

9
rybo111
$str = substr($str, 1);

PHPマニュアルの例3を参照してください。

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

注意:

unset($str[0]) 

あなたは文字列の一部を設定解除することはできませんのでは動作しません: -

Fatal error: Cannot unset string offsets
9
Gammerz

受け入れられた答え:

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

動作しますが、最初に複数の:がある場合は削除します。

$str = substr($str, 1);

先頭から文字を削除します。

しかしながら、

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

完璧に動作します。

8
Dan Bray

sbstr()関数を使うことができます

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

配列内のすべてのWordの出現箇所を、文字列の先頭と末尾、空白文字、および必要に応じて通常のtrim()のように余分な1文字から削除します。

<?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"
?>
2
Ben

PHPで文字列の最初の文字を削除するには、

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

echo $new_string;
Generates: "bcdef"
2
Chandan Sharma

コードは私にはうまくいきます。

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

多分、答えも投稿してください。

1

mb_substr関数を使う

    mb_substr("我abc", 1);
0
风声猎猎