$str=':this is a applepie :) ';
Comment utiliser PHP , supprimer le premier caractère:
$str=':this is a applepie :) ';
Comment utiliser PHP , supprimer le premier caractère:
Réponses:
Pour supprimer tout :
depuis le début d'une chaîne, vous pouvez utiliser ltrim :
$str = '::f:o:';
$str = ltrim($str, ':');
var_dump($str); //=> 'f:o:'
:::::
. Parfois, ce n'est pas un comportement souhaité.
ltrim('prefixprefix_postfix', 'prefix')
résultats dans'_postfix';
La substr()
fonction vous aidera probablement ici:
$str = substr($str, 1);
Les chaînes sont indexées à partir de 0, et ce deuxième paramètre de fonction prend le cutstart. Faites donc ce 1, et le premier caractère est parti.
false
était retourné. Vous devez donc vérifier s'ils sont égaux si ce n'est pas le comportement que vous souhaitez.
Utilisez substr :
$str = substr($str, 1); // this is a applepie :)
Temps d'exécution pour les 3 réponses:
Retirez 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
Temps d'exécution pour 1.000.000 tests: 0.39602184295654
sec
Supprimer la première lettre avec substr ()
$str = "hello";
$str = substr($str, 1);
Temps d'exécution pour 1.000.000 tests: 5.153294801712
sec
Supprimer la première lettre avec ltrim ()
$str = "hello";
$str= ltrim ($str,'h');
Temps d'exécution pour 1.000.000 tests: 5.2393000125885
sec
Supprimez la première lettre avec preg_replace ()
$str = "hello";
$str = preg_replace('/^./', '', $str);
Temps d'exécution pour 1.000.000 tests: 6.8543920516968
sec
$str[0] = '';
solution et ça n'a pas marché. bien, cependant, si vous prévoyez d'utiliser la variable par exemple pour comparer >
ou <
cela ne fonctionnera pas. Il compte toujours `` comme + '' par exemple $str = 'hello'; $str[0] = ''; var_dump($str); // string(5) 'ello'
var_dump($keyword)
j'ai essayé qui montrait la longueur du caractère précédent .. puis j'ai essayé de couper le mot-clé et cela a bien fonctionné var_dump(trim($keyword))
.. J'espère que cela aide quelqu'un .. :)
Voici le code
$str = substr($str, 1);
echo $str;
Production:
this is a applepie :)
Pour supprimer le premier caractère de chaîne en PHP,
$string = "abcdef";
$new_string = substr($string, 1);
echo $new_string;
Generates: "bcdef"
$str = substr($str, 1);
Voir l' 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
Après d'autres tests, je ne recommande plus de l'utiliser. Cela m'a causé un problème lors de l'utilisation de la chaîne mise à jour dans une requête MySQL et de la modification substr
du problème. J'ai pensé à supprimer cette réponse, mais les commentaires suggèrent qu'elle est plus rapide pour que quelqu'un puisse l'utiliser. Vous pouvez trouver que rogner 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.
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);
Supprime les occurrences de chaque mot dans un tableau depuis le début et la fin d'une chaîne + un espace et éventuellement des caractères uniques supplémentaires comme par le trim 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"
?>
Le code fonctionne bien pour moi.
$str = substr($str ,-(strlen($str)-1));
Peut-être aussi contribuer avec des réponses.