Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 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...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
 
 
 

Groß- und Kleinschreibung bei regulären Ausdrücken ignorieren

Sie befinden sich: Home > Php Tutorial > Groß- und Kleinschreibung...

Groß- und Kleinschreibung bei regulären Ausdrücken ignorieren


Eintrag am:  17.01.2010
Hits / Besucher:  7339
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Bei der Verarbeitung von Benutzereingaben spielt die Groß- und Kleinschreibung oft keine Rolle. Wenn ein Besucher „php“ statt „PHP“ in ein Suchfeld eingibt, soll trotzdem das richtige Ergebnis erscheinen. PHP bietet dafür mehrere Möglichkeiten.

Der i-Modifier bei preg_match()

Der einfachste Weg, die Groß- und Kleinschreibung in einem regulären Ausdruck zu ignorieren, ist der i-Modifier. Er wird am Ende des Patterns angehängt:

<?php

$text = 'Das ist ein PHP Tutorial.';

/* Suche nach "php" ohne Beruecksichtigung
der Gross- und Kleinschreibung */
if (preg_match('/php/i', $text)) {
echo 'Treffer gefunden!';
}
?>

Die Ausgabe lautet Treffer gefunden!, obwohl im Text „PHP“ in Großbuchstaben steht und das Suchmuster php klein geschrieben ist. Der i-Modifier sorgt dafür, dass Groß- und Kleinbuchstaben gleich behandelt werden.

Beispiel: Mehrere Schreibweisen finden

Der i-Modifier funktioniert mit beliebigen regulären Ausdrücken. Hier ein Beispiel, das verschiedene Schreibweisen in einem Array findet:

<?php

$texte = [
'PHP ist eine Scriptsprache',
'Ich lerne gerade php',
'Python ist auch beliebt',
'Mit Php kann man Webseiten bauen'
];

foreach ($texte as $zeile) {
if (preg_match('/php/i', $zeile)) {
echo $zeile . PHP_EOL;
}
}
?>

Alle drei Zeilen mit „PHP“, „php“ und „Php“ werden gefunden. Nur die Zeile mit „Python“ wird übersprungen, da sie kein „php“ enthält.

Alternativen ohne reguläre Ausdrücke

Für einfache Suchen ohne komplexe Muster gibt es schnellere Funktionen, die von Haus aus die Groß- und Kleinschreibung ignorieren.

stripos() für die Positionssuche

Die Funktion stripos() sucht eine Zeichenkette in einer anderen, ohne auf die Schreibweise zu achten. Sie gibt die Position des ersten Treffers zurück oder false, wenn nichts gefunden wird:

<?php

$text = 'Willkommen auf PHP-Space!';

$pos = stripos($text, 'php-space');

if ($pos !== false) {
echo 'Gefunden an Position: ' . $pos;
}
/* Ausgabe: Gefunden an Position: 16 */
?>

Die verwandte Funktion stristr() gibt statt der Position den Teil des Strings ab dem Treffer zurück.

mb_strtolower() für den Vergleich

Wenn beide Strings vor dem Vergleich in Kleinbuchstaben umgewandelt werden, funktioniert auch ein direkter Vergleich. Bei Texten mit Umlauten ist mb_strtolower() die bessere Wahl gegenüber strtolower():

<?php

$eingabe = 'MÜNCHEN';
$vergleich = 'münchen';

if (mb_strtolower($eingabe) === $vergleich) {
echo 'Texte stimmen überein.';
}
?>

Hinweis zu sql_regcase()

In älteren PHP-Versionen gab es die Funktion sql_regcase(), die einen String automatisch in einen Klammerausdruck wie [Pp][Hh][Pp] umwandelte. Diese Funktion wurde in PHP 5.3 als veraltet markiert und in PHP 7.0 komplett entfernt. Die oben gezeigten Methoden sind der moderne und empfohlene Ersatz.

 

Tags:

 

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.