Wie kann ich die letzten 7 Zeichen einer PHP-Zeichenfolge abrufen?


278

Wie würde ich vorgehen, um die letzten 7 Zeichen der folgenden Zeichenfolge zu erfassen?

Beispielsweise:

$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;

Welches würde anzeigen:

The new string is: 5409els


8
Die als Dup identifizierte Frage ist überhaupt nicht die gleiche wie diese Frage.
— Asaph

13
Es ist ironisch, dass ich hier aufgenommen werde, wenn ich Google nach diesem Thema suche. Seufzer
— LeonardChallis

5
@Asaph Ich nenne das den Stack-Effekt. Die Leute versuchen alles, um Fragen zu schließen. Das erste, was sie tun werden, ist, es als Dup zu
— kennzeichnen,

5
Es ist viel einfacher und schneller, das Problem zu googeln und eine Codezeile in der Antwort in SO zu finden, als das Handbuch durchzugehen.
— Engin Yapici

Antworten:


597

Verwenden Sie substr()für das 2. Argument eine negative Zahl.

$newstring = substr($dynamicstring, -7);

Aus den PHP-Dokumenten :

string substr ( string $string , int $start [, int $length ] )

Wenn start negativ ist, beginnt die zurückgegebene Zeichenfolge am Anfang des Zeichens am Ende der Zeichenfolge.


Wenn $ dynamicstring jedoch weniger als 7 Zeichen enthält, ist $ newstring leer. (zumindest auf PHP 5.2.6)
— Scott Chu

Sie können immer zuerst mit strlen prüfen, ob die Anzahl der Zeichen größer oder gleich 7 ist.
— PBwebD


14

Für sicherere Ergebnisse beim Arbeiten mit Multibyte-Zeichencodes wird immer mb_substr anstelle von substr verwendet. Beispiel für utf-8:

$str = 'Ne zaman seni düşünsem';
echo substr( $str, -7 ) . ' <strong>is not equal to</strong> ' .
  mb_substr( $str, -7, null, 'UTF-8') ;

11

Es wäre besser, eine Überprüfung durchzuführen, bevor Sie die Zeichenfolge erhalten.

$newstring = substr($dynamicstring, -7);

Wenn die Zeichen größer als 7 sind, werden die letzten 7 Zeichen zurückgegeben. Andernfalls wird die angegebene Zeichenfolge zurückgegeben.

oder tun Sie dies, wenn Sie eine Nachricht oder einen Fehler zurückgeben müssen, wenn die Länge weniger als 7 beträgt

$newstring = (strlen($dynamicstring)>7)?substr($dynamicstring, -7):"message";

Substr Dokumentation


Ich denke, der andere Teil wird benötigt, um eine Nachricht zurückzugeben. So etwas wie ungültige Daten eingegeben oder ..
— Neri

1
Dies ist wahrscheinlich die beste Antwort. Das einzige, was es besser machen könnte, ist ein Verweis auf das PHP-Handbuch.
— Mark Carpenter Jr

2

Wenn Sie der Einfachheit halber keine Nachricht senden möchten, versuchen Sie dies

$new_string = substr( $dynamicstring, -min( strlen( $dynamicstring ), 7 ) );

0

für die letzten 7 Zeichen

$newstring = substr($dynamicstring, -7);

$ newstring: 5409els

für die ersten 7 Zeichen

$newstring = substr($dynamicstring, 0, 7);

$ newstring: 2490slk


-1

Die letzten 7 Zeichen einer Zeichenfolge:

$ rest = substr ("abcdefghijklmnop", -7); // gibt "jklmnop" zurück

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.