webentwicklung-frage-antwort-db.com.de

Wie entferne ich einen Teil eines Strings?

Wie schneidet man einen Teil einer Zeichenfolge ab und speichert sie in einer bestimmten Zeichenfolge in MySQL mit PHP?

Beispielstring: "REGISTER 11223344 here"

Wie kann ich "11223344" aus der Beispielzeichenfolge entfernen?

124
siddharth

Wenn Sie gezielt "11223344" wählen, verwenden Sie str_replace

echo str_replace("11223344", "", "REGISTER 11223344 here");
172
Dominic Rodger

Sie können str_replace () verwenden, das definiert ist als:

str_replace($search, $replace, $subject)

So könnten Sie den Code schreiben als:

$subject = 'REGISTER 11223344 here' ;
$search = '11223344' ;
$trimmed = str_replace($search, '', $subject) ;
echo $trimmed ;

Wenn Sie eine bessere Übereinstimmung über reguläre Ausdrücke benötigen, können Sie preg_replace () verwenden.

94
dhorat

es wird angenommen, dass 11223344 nicht konstant ist

$string="REGISTER 11223344 here";
$s = explode(" ",$string);
unset($s[1]);
$s = implode(" ",$s);
print "$s\n";
21
ghostdog74

Mach Folgendes

$string = 'REGISTER 11223344 here';

$content = preg_replace('/REGISTER(.*)here/','',$string);

Dies würde "REGISTERhere" zurückgeben.

oder

$string = 'REGISTER 11223344 here';

$content = preg_replace('/REGISTER (.*) here/','',$string);

Dies würde zurückkehren "Hier anmelden"

15
Roland

Wenn Sie einen regelbasierten Abgleich benötigen, müssen Sie Regex verwenden

$string = "REGISTER 11223344 here";
preg_match("/(\d+)/", $string, $match);
$number = $match[1];

Dies stimmt mit dem ersten Satz von Zahlen überein. Wenn Sie genauer sein müssen, versuchen Sie Folgendes:

$string = "REGISTER 11223344 here";
preg_match("/REGISTER (\d+) here/", $string, $match);
$number = $match[1];
6
TravisO

substr () ist eine eingebaute PHP-Funktion, die einen Teil eines Strings zurückgibt. Die Funktion substr () nimmt einen String als Eingabe auf, die Indexform, in der der String abgeschnitten werden soll. Ein optionaler Parameter ist die Länge der Teilzeichenfolge. Die entsprechende Dokumentation und Beispielcode finden Sie auf http://php.net/manual/de/function.substr.php

HINWEIS: Der Index für einen String beginnt mit 0.

5
Umair Jabbar
str_replace(find, replace, string, count)
  • find Erforderlich. Gibt den Wert für find an.
  • ersetzen Erforderlich. Gibt den Wert an, den ersetzen soll den Wert in find
  • string Erforderlich. Gibt die Zeichenfolge an, die gesucht werden soll
  • Anzahl Optional. Eine Variable, die die Anzahl der Ersetzungen zählt
1
Stnfordly

Wenn Sie (a) Teil (e) aus (a) festen Indizes eines Strings entfernen möchten, verwenden Sie diese Funktion:

/*
 * Remove index/indexes from a string, delimited by a space (or something else).
 * First, divides the string by delimiter and holds divided parts as an array.
 * If $index is an array, it removes all indexes of the divided string;
 * otherwise (i.e. has an int value), it removes just that index of the string.
 * At last, it joins all string parts together and return it as a string.
 * Note: If you want to use this function in PHP5, remove scalar type hints
 * (i.e. keywords before function arguments).
 * Note: For PHP versions lower than 7.0, remove scalar type hints (i.e. the
 * types before each argument) and the return type.
 */
function remove_from_str(string $str, $index, string $delimiter = " "): string
{
    // String parts
    $strParts = explode($delimiter, $str);

    // Remove indexes from string parts
    if (is_array($index))
        foreach ($index as $i)
            $strParts[(int)$i] = null;
    else
        $strParts[(int)$index] = null;

    // Remove null values, to prevent duplicating delimiter
    $strParts = array_filter($strParts);

    // Join all parts together and return it
    return implode($delimiter, $strParts);
}

Für Ihren Zweck:

remove_from_str("REGISTER 11223344 here", 1);
// Output: REGISTER here

Eine der Anwendungen ist es, befehlsartige Strings auszuführen, deren Strukturen Sie kennen.

1
MAChitgarha