web-dev-qa-db-fra.com

Comment supprimer le premier caractère de chaîne en PHP?

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

Comment utiliser PHP , Supprimez le premier caractère :

232
yuli chika

Pour supprimer tous les : du début d'une chaîne, vous pouvez utiliser ltrim :

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

La fonction substr() vous aidera probablement ici:

 $str = substr($str, 1);

Les chaînes sont indexées à partir de 0, et ce second paramètre de fonction prend le cutstart. Alors faites-en 1, et le premier personnage est parti.

523
mario

Utilisez substr :

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

Temps d'exécution pour les 3 réponses:

Supprimer la première lettre en remplaçant le cas

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

Heure d'exécution pour 1.000.000 tests: 0.39602184295654 sec


Supprimer la première lettre avec substr ()

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

Heure d'exécution pour 1.000.000 tests: 5.153294801712 sec


Enlevez la première lettre avec ltrim ()

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

Heure d'exécution pour 1.000.000 tests: 5.2393000125885 sec


Supprimer la première lettre avec preg_replace ()

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

Heure d'exécution pour 1.000.000 tests: 6.8543920516968 sec

64
Hayenn

Voici le code

$str = substr($str, 1); 

echo $str;

Sortie:

this is a applepie :)
24
Tarun modi

Mise à jour

Après d'autres tests, je ne recommande plus de l'utiliser. Cela posait un problème lorsque j'utilisais la chaîne mise à jour dans une requête MySQL et que le passage à substr corrigeait le problème. J'ai envisagé de supprimer cette réponse, mais les commentaires suggèrent qu'elle est plus rapide, afin que quelqu'un puisse en avoir une utilisation. Vous pouvez constater que le fait de couper la chaîne mise à jour résout les problèmes de longueur de chaîne.


Parfois, vous n'avez pas besoin d'une fonction:

$str[0] = '';

Par exemple:

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

Cette méthode modifie la chaîne existante plutôt que d'en créer une autre.

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

Voir exemple 3 du manuel PHP

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

Remarque:

unset($str[0]) 

ne fonctionnera pas car vous ne pouvez pas supprimer une partie d'une chaîne: -

Fatal error: Cannot unset string offsets
9
Gammerz

La réponse acceptée:

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

fonctionne mais supprimera plusieurs : quand il y en a plusieurs au début.

$str = substr($str, 1);

enlèvera tout caractère du début.

Cependant,

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

fonctionne parfaitement.

8
Dan Bray

vous pouvez utiliser la fonction sbstr ()

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

Élimine les occurrences de chaque mot dans un tableau depuis le début et la fin d'une chaîne, ainsi que des espaces et éventuellement des caractères simples supplémentaires, comme dans l'ajustage normal ()

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

Pour supprimer le premier caractère de chaîne en PHP,

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

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

Le code fonctionne bien pour moi.

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

Peut-être, contribuez avec des réponses aussi.

1
Claudionor Oliveira

utiliser la fonction mb_substr

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