Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
 
 
 

Entfernen von Leerzeichen am Ende eines Strings mit PHP rtrim()

Sie befinden sich: Home > Php Tutorial > Leerzeichen am Ende einer Z...

Leerzeichen am Ende einer Zeichenkette entfernen


Eintrag am:  16.11.2009
Hits / Besucher:  4516
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Bei der Verarbeitung von Benutzereingaben ist es oft notwendig, unerwünschte Leerzeichen am Ende einer Zeichenkette zu entfernen. Diese zusätzlichen Leerzeichen können zu Problemen führen, insbesondere wenn die Daten in einer Datenbank gespeichert oder für Suchabfragen verwendet werden. Die Funktion PHP rtrim() bietet eine effiziente Möglichkeit, solche Leerzeichen und andere definierte Zeichen am Ende eines Strings zu entfernen.

Illustration zur PHP rtrim() Funktion mit drei Segmenten: Zweck der Funktion zur Bereinigung von Zeichenfolgen, Funktionsweise zum Entfernen unerwünschter Zeichen und Vorteile der Nutzung in der Datenverarbeitung. Im Zentrum ist ein PHP-Symbol dargestellt.

Grundlegende Verwendung von rtrim() in PHP

Die Funktion rtrim() entfernt standardmäßig alle Arten von Whitespace-Zeichen am Ende einer Zeichenkette. Dazu gehören:

  • Leerzeichen ( )
  • Tabulatoren (\t)
  • Neue Zeilen (\n)
  • Wagenrückläufe (\r)
  • Vertikale Tabulatoren (\v)
  • Null-Bytes (\0)

Die grundlegende Syntax lautet:

string rtrim ( string $str [, string $character_mask ] )
  • $str: Die Eingabezeichenkette, die bearbeitet werden soll.
  • $character_mask (optional): Eine Liste von Zeichen, die am Ende der Zeichenkette entfernt werden sollen.

Beispiel ohne Zeichenmaske

<?php

$string = "Beispieltext mit Leerzeichen am Ende ";
$bereinigt = rtrim($string);
echo "#".$bereinigt."#";
?>

Ausgabe:

#Beispieltext mit Leerzeichen am Ende#


Analyse:

In diesem Beispiel werden die Leerzeichen am Ende der Zeichenkette erfolgreich entfernt, während der Rest des Strings unverändert bleibt.

Verwendung der Zeichenmaske

Die optionale Zeichenmaske erlaubt es, spezifische Zeichen zu definieren, die entfernt werden sollen. Dabei werden alle angegebenen Zeichen, unabhängig von ihrer Reihenfolge, vom Ende des Strings entfernt.

 

Beispiel mit spezifischen Zeichen

<?php

$string = "Datenbankeintrag###";
$bereinigt = rtrim($string, "#");
echo $bereinigt;
?>

Ausgabe:

Datenbankeintrag


Analyse:

Hier werden alle #-Zeichen am Ende der Zeichenkette entfernt.

 

Komplexere Zeichenmasken

<?php

$string = "abc123xyz";
$bereinigt = rtrim($string, "xyz");
echo $bereinigt;
?>

Ausgabe:

abc123


Analyse:

Die Zeichen x, y und z werden am Ende entfernt, bis ein Zeichen erreicht wird, das nicht in der Zeichenmaske enthalten ist.

Achtung bei der Zeichenmaske

Es ist wichtig zu verstehen, dass die Zeichenmaske als Liste von einzelnen Zeichen behandelt wird, nicht als Stringsequenz.

 

Potenzielle Fallstricke

<?php

$string = "filename.php";
$bereinigt = rtrim($string, ".php");
echo $bereinigt;
?>

Ausgabe:

filen


Analyse:

Hier werden die Zeichen . , p und h entfernt, bis ein Zeichen erreicht wird, das nicht in der Maske enthalten ist. Dies kann zu unerwarteten Ergebnissen führen, wenn man versucht, Dateiendungen zu entfernen. Um eine bestimmte Sequenz zu entfernen, sollten Sie Funktionen wie substr() oder reguläre Ausdrücke verwenden.

 

Anwendung auf Arrays und Objekte

Verarbeitung von Arrays mit array_map()

<?php

$array = array(" Wert1 ", " Wert2t", " Wert3n");
$bereinigtesArray = array_map('rtrim', $array);
print_r($bereinigtesArray);
?>

Ausgabe:

Array

(
[0] => Wert1
[1] => Wert2
[2] => Wert3
)

Analyse:

Die Funktion array_map() wendet rtrim() auf jedes Element des Arrays an und entfernt die Whitespace-Zeichen am Ende jedes Strings.

 

Verarbeitung von Objekteigenschaften

<?php

$obj = new stdClass();
$obj->titel = "Artikelname ";
$obj->beschreibung = "Beschreibung\t";

foreach ($obj as $key => $value) {
$obj->$key = rtrim($value);
}

echo $obj->titel . " - " . $obj->beschreibung;
?>

Ausgabe:

Artikelname - Beschreibung


Analyse:

Durch Iteration über die Objekteigenschaften können Sie rtrim() auf jede Eigenschaft anwenden, um unerwünschte Leerzeichen zu entfernen.

 

Multibyte-Zeichen und rtrim()

Bei der Verarbeitung von Zeichenketten mit Multibyte-Zeichen (z. B. UTF-8) kann rtrim() unerwartete Ergebnisse liefern, da es byteweise arbeitet.

 

Beispiel mit Multibyte-Zeichen

<?php

$string = "Überschriftä ";
$bereinigt = rtrim($string);
echo $bereinigt;
?>

Ausgabe:

Überschriftä


Analyse:

In diesem Fall funktioniert rtrim() korrekt, da das Leerzeichen ein einzelnes Byte ist. Wenn jedoch Multibyte-Leerzeichen oder spezielle Unicode-Leerzeichen verwendet werden, sollten Sie die Funktion mb_​rtrim() aus der Multibyte-String-Erweiterung verwenden.

 

Entfernen von spezifischen Wortenden

Wenn Sie spezifische Wortenden oder Suffixe entfernen möchten, eignet sich rtrim() nicht, da es einzelne Zeichen entfernt.

Alternative mit substr() und strrpos():

<?php

$string = "bilddatei.jpg";
$endung = ".jpg";

if (substr($string, -strlen($endung)) === $endung) {
$string = substr($string, 0, -strlen($endung));
}

echo $string;
?>

Ausgabe:

bilddatei

Analyse:

Hier wird überprüft, ob der String mit der Endung .jpg endet, und diese wird dann entfernt.

 

Umgang mit Binärdaten

rtrim() ist binärsicher und kann daher auch auf Binärdaten angewendet werden.

Beispiel mit Binärdaten

<?php

$data = "binarydata\0\0\0";
$bereinigt = rtrim($data, "\0");
echo strlen($bereinigt);
?>

Ausgabe:

10

Analyse:

Die Null-Bytes am Ende des Strings werden entfernt, was die Länge des Strings reduziert.

 

Leistungsüberlegungen

Bei der Verarbeitung großer Datenmengen oder langer Strings sollte die Effizienz berücksichtigt werden.

  • Vermeiden unnötiger Funktionen: Verwenden Sie rtrim() nur, wenn Sie sicher sind, dass unerwünschte Zeichen vorhanden sein könnten.
  • Einmalige Anwendung: Bei wiederholter Anwendung auf die gleiche Variable könnte unnötiger Overhead entstehen.

Zusammenfassung der Unterschiede zwischen trim(), ltrim() und rtrim()

Die Funktion trim() entfernt definierte Zeichen am Anfang und Ende eines Strings. Mit ltrim() werden definierte Zeichen nur vom Anfang eines Strings entfernt. Die Funktion rtrim() entfernt hingegen definierte Zeichen nur vom Ende des Strings.

Funktion Entfernt am Anfang Entfernt am Ende
trim() Ja Ja
ltrim() Ja Nein
rtrim() Nein Ja

Erweiterte Beispiele

Beispiel: Entfernen von HTML-Tags am Ende

<?php

$string = "Dies ist ein Text<br><br>";
$bereinigt = rtrim($string, "<br>");
echo $bereinigt;
?>

Ausgabe:

Dies ist ein Text

Analyse:

Dies funktioniert nicht wie erwartet, da rtrim() die Zeichen <, b, r und > entfernt, unabhängig von ihrer Reihenfolge. Um HTML-Tags zu entfernen, sollten Sie Funktionen wie strip_tags() oder reguläre Ausdrücke verwenden.

 

Korrektes Entfernen von HTML-Tags mit Regulären Ausdrücken

<?php

$string = "Dies ist ein Text<br><br>";
$bereinigt = preg_replace('/(<br>)+$/', '', $string);
echo $bereinigt;
?>

Ausgabe:

Dies ist ein Text

Analyse:

Hier wird ein regulärer Ausdruck verwendet, um ein oder mehrere <br>-Tags am Ende der Zeichenkette zu entfernen.

 

Wichtige Hinweise

  • Immutable Strings: In PHP sind Strings unveränderlich. Funktionen wie rtrim() geben einen neuen String zurück und verändern nicht die ursprüngliche Variable, sofern das Ergebnis nicht gespeichert wird.

     <?php
    
    $string = "Text ";
    rtrim($string);
    echo $string;
    /* Gibt "Text " aus */
    ?>
  • Speicherung des Ergebnisses: Um das bereinigte Ergebnis zu erhalten, müssen Sie es der Variable zuweisen.

    <?php
    
    $string = "Text ";
    $string = rtrim($string);
    echo $string;
    /* Gibt "Text" aus */
    ?>

Praktische Anwendung in Datenbanken

Vor dem Speichern von Daten in einer Datenbank ist es sinnvoll, Eingaben zu bereinigen, um Konsistenz zu gewährleisten.

Beispiel mit Benutzereingaben

<?php

$benutzername = $_POST['benutzername'];
$benutzername = rtrim($benutzername);

/* Weiterverarbeitung oder Speicherung in der Datenbank mit Escape */
?>

Analyse:

Durch die Anwendung von rtrim() auf die Benutzereingabe werden unerwünschte Leerzeichen am Ende entfernt, was die Datenintegrität verbessert.

 

Fazit

Die Funktion rtrim() ist ein nützliches Werkzeug zur Bereinigung von Zeichenketten in PHP. Durch das Verständnis ihrer Funktionsweise und Einschränkungen können Sie sicherstellen, dass Ihre Anwendungen korrekt und effizient mit Benutzereingaben und Daten umgehen.

Weitere relevante Funktionen sind trim() zum Entfernen von Zeichen am Anfang und Ende einer Zeichenkette sowie ltrim() zum Entfernen von Zeichen am Anfang.

 

Tags:

 

Artikel hinzufügen bei:
         
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.