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
Dave
quelle
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.

Asaph
quelle
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
73

ähm ... so?

$newstring = substr($dynamicstring, -7);
Vitaly Muminov
quelle
6
Sie waren schneller :)
Milkovsky
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') ;
MERT DOĞAN
quelle
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

Abdul Manan
quelle
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 ) );
Mariovials
quelle
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

Entwickler
quelle
-1

Die letzten 7 Zeichen einer Zeichenfolge:

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

keerthi
quelle