webentwicklung-frage-antwort-db.com.de

Wie entferne ich das erste Zeichen eines Strings in PHP?

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

Wie benutzt man PHP , Entferne das erste Zeichen :

232
yuli chika

Um jeden : am Anfang eines Strings zu entfernen, können Sie ltrim verwenden:

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

Die substr() Funktion wird Ihnen hier wahrscheinlich helfen:

 $str = substr($str, 1);

Strings werden ab 0 indiziert und dieser zweite Parameter der Funktion übernimmt den Cutstart. Also mach die 1, und der erste Char ist weg.

523
mario

Verwenden Sie substr :

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

Ausführungszeit für die 3 Antworten:

Entfernen Sie den ersten Buchstaben, indem Sie das Gehäuse ersetzen

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

Ausführungszeit für 1.000.000 Tests: 0.39602184295654 Sek


Entferne den ersten Buchstaben mit substr ()

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

Ausführungszeit für 1.000.000 Tests: 5.153294801712 Sek


Entferne den ersten Buchstaben mit ltrim ()

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

Ausführungszeit für 1.000.000 Tests: 5.2393000125885 Sek


Entfernen Sie den ersten Buchstaben mit preg_replace ()

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

Ausführungszeit für 1.000.000 Tests: 6.8543920516968 Sek

64
Hayenn

Hier ist der Code

$str = substr($str, 1); 

echo $str;

Ausgabe:

this is a applepie :)
24
Tarun modi

Aktualisieren

Nach weiteren Tests empfehle ich dies nicht mehr. Es verursachte ein Problem bei der Verwendung der aktualisierten Zeichenfolge in einer MySQL-Abfrage, und das Problem wurde behoben, indem ich zu substr wechselte. Ich dachte darüber nach, diese Antwort zu löschen, aber Kommentare deuten darauf hin, dass sie irgendwie schneller ist, damit jemand eine Verwendung dafür hat. Möglicherweise behebt das Trimmen der aktualisierten Zeichenfolge Probleme mit der Zeichenfolgenlänge.


Manchmal braucht man keine Funktion:

$str[0] = '';

Zum Beispiel:

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

Diese Methode ändert die vorhandene Zeichenfolge, anstatt eine andere zu erstellen.

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

Siehe PHP-Handbuch, Beispiel

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

Hinweis:

unset($str[0]) 

funktioniert nicht , da Sie einen Teil eines Strings nicht entfernen können: -

Fatal error: Cannot unset string offsets
9
Gammerz

Die akzeptierte Antwort:

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

funktioniert, entfernt jedoch mehrere :, wenn am Anfang mehrere vorhanden sind.

$str = substr($str, 1);

entfernt ein beliebiges Zeichen vom Start.

Jedoch,

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

funktioniert perfekt.

8
Dan Bray

sie können die Funktion sbstr () verwenden

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

Schneidet die Vorkommen jedes Wortes in einem Array vom Anfang und Ende einer Zeichenfolge + Leerzeichen und optional zusätzliche Einzelzeichen wie bei normalem trim () ab

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

So entfernen Sie das erste Zeichen einer Zeichenfolge in PHP:

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

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

Der Code funktioniert gut für mich.

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

Vielleicht auch mit Antworten beitragen.

1

benutze die mb_substr Funktion

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