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.