204 Stimmen

Wie kann ich einen Teil eines Strings in PHP entfernen?

Wie kann ich einen Teil einer Zeichenkette entfernen?

Beispiel-String: "REGISTER 11223344 here"

Wie kann ich die "11223344" aus dem obigen Beispielstring?

4voto

Umair Jabbar Punkte 3508

Substr() ist eine eingebaute PHP-Funktion, die einen Teil eines Strings zurückgibt. Die Funktion substr() nimmt eine Zeichenkette als Eingabe, die Indexform, an der die Zeichenkette abgeschnitten werden soll, und als optionalen Parameter die Länge der Teilzeichenkette. Eine ausführliche Dokumentation und Beispielcode finden Sie unter Teilbereich .

Hinweis Index: Der Index für eine Zeichenkette beginnt mit 0.

1voto

MAChitgarha Punkte 2673

Wenn Sie dynamisch (einen) Teil(e) aus (einem) festen Index(en) einer Zeichenkette entfernen wollen, verwenden Sie diese Funktion:

/**
 * Removes index/indexes from a string, using a delimiter.
 * 
 * @param string $string
 * @param int|int[] $index An index, or a list of indexes to be removed from string.
 * @param string $delimiter 
 * @return string
 * @todo Note: For PHP versions lower than 7.0, remove scalar type hints (i.e. the
 * types before each argument) and the return type.
 */
function removeFromString(string $string, $index, string $delimiter = " "): string
{
    $stringParts = explode($delimiter, $string);

    // Remove indexes from string parts
    if (is_array($index)) {
        foreach ($index as $i) {
            unset($stringParts[(int)($i)]);
        }
    } else {
        unset($stringParts[(int)($index)]);
    }

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

Für Ihren Zweck:

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

Einer seiner Verwendungszwecke ist die Ausführung von befehlsähnlichen Zeichenfolgen, deren Struktur Sie kennen.

0voto

arango_86 Punkte 3824

Der folgende Ausschnitt gibt "REGISTER here" aus

$string = "REGISTER 11223344 here";

$result = preg_replace(
   array('/(\d+)/'),
   array(''),
   $string
);

print_r($result);

Die Verwendung der API preg_replace() wird im Folgenden beschrieben.

$result = preg_replace(
    array('/pattern1/', '/pattern2/'),
    array('replace1', 'replace2'),
    $input_string
);

-1voto

Elitmiar Punkte 32308

Gehen Sie wie folgt vor

$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 "REGISTER here" zurückgeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X