php zusammensetzen Entfernen Sie eine Zeichenfolge vom Anfang einer Zeichenfolge




php string+string (7)

Ich habe eine Zeichenfolge, die so aussieht:

$str = "bla_string_bla_bla_bla";

Wie kann ich das erste bla_ entfernen bla_ aber nur wenn es am Anfang der Zeichenfolge gefunden wird?

Mit str_replace() entfernt es alle bla_ .


str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

jetzt macht was du willst.

$str = "bla_string_bla_bla_bla";
str_replace("bla_","",$str,1);

Normalform, ohne Regex:

$prefix = 'bla_';
$str = 'bla_string_bla_bla_bla';

if (substr($str, 0, strlen($prefix)) == $prefix) {
    $str = substr($str, strlen($prefix));
} 

Nimmt: 0,0369 ms (0,000,036,954 Sekunden)

Und mit:

$prefix = 'bla_';
$str = 'bla_string_bla_bla_bla';
$str = preg_replace('/^' . preg_quote($prefix, '/') . '/', '', $str);

Nimmt: 0,1749 ms (0,000174,999 Sekunden) den ersten Lauf (Kompilieren) und 0,0510 ms (0,000,051,021 Sekunden) danach.

Offensichtlich auf meinem Server profiliert.


Hier.

$array = explode("_", $string);
if($array[0] == "bla") array_shift($array);
$string = implode("_", $array);


Sie können reguläre Ausdrücke mit dem Caret-Symbol ( ^ ) verwenden, das die Übereinstimmung am Anfang der Zeichenfolge verankert:

$str = preg_replace('/^bla_/', '', $str);

function remove_prefix($text, $prefix) {
    if(0 === strpos($text, $prefix))
        $text = substr($text, strlen($prefix)).'';
    return $text;
}

Entfernen Sie www. vom Anfang der Zeichenfolge ist dies der einfachste Weg (ltrim)

$a="www.google.com";
echo ltrim($a, "www.");




string