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

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

PHP strpos(): Zeichenposition ab einem bestimmten Offset suchen

Sie befinden sich: Home > Php Tutorial > Das vorkommen eines Zeichen...

Das vorkommen eines Zeichens in einer Zeichenkette ab einer bestimmten Position suchen


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

Ich schreibe heute hier mal ein Tutorial über die php- Funktion strpos(). Diese Funktion sucht nach einem bestimmten Zeichen innerhalb einer Zeichenkette. Jedoch gibt es wie bei den meisten php- Funktionen verschiedene weitere Parameter, die man verwenden kann. In dem ersten Beispiel wird jedoch die einfachste Form verwendet.

Beispiel eins:

<?php

    
/*

    * Created on 28.12.2009 by Nico Schubert

    */

    
$zeichenkette 'Das ist ein Satz mit ein Punkt am

        Ende.'
;

    
$position_des_zeichen strpos($zeichenkette".");

    echo 
$position_des_zeichen;

?>


Hier wird der Funktion an erster Stelle eine Variable $zeichenkette übergeben, in der sich, wie der Name schon vermuten lässt, eine Zeichenkette befindet. Die zweite übergebene Variable ist das Zeichen, was gesucht werden soll, in diesem Fall der Punkt. Die Ausgabe dieses Aufrufes ist dann „38“. Im zweiten Beispiel wird noch eine weitere Variable übergeben.

Beispiel zwei:

<?php

    
/*

    * Created on 28.12.2009 by Nico Schubert

    */

    
$zeichenkette 'Test. Das ist ein Satz.';

    
$position_des_zeichen strpos($zeichenkette".",

        
5);

    echo 
$position_des_zeichen;

?>



Die Funktion arbeitet hier genau wie im ersten Beispiel, jedoch übergibt man der Funktion an der dritten Stelle einen Offset, das heißt die ersten Zeichen der übergebenen Zeichenkette werden ignoriert und die Suche wird erst nach dem Offset begonnen. In diesem Fall ist es die "5", also werden die ersten fünf Zeichen und somit auch der erste Punkt ignoriert. Die Ausgabe ist dann trotzdem „22“, da bei der Ausgabe der Funktion des Offsets nicht mit berücksichtigt wird.

Wichtig ist es auch noch zu erwähnen, dass diese Funktion nicht immer eine Zahl zurückliefert, wenn also das gesuchte Zeichen nicht in der Zeichenkette vorhanden ist, liefert die Funktion ein boolsches „false“ zurück. Sollte man die Zahl weiterverarbeiten wollen, so muss man diesen Umstand vor der Weiterbearbeitung prüfen. Seit PHP 5 ist es auch möglich, anstelle eines einzelnen Zeichens eine komplette Zeichenkette als Suchbegriff anzugeben.

Achtung: Der häufigste strpos()-Fehler

Da strpos() die Position 0 zurückgibt, wenn das Zeichen ganz am Anfang steht, führt ein Vergleich mit == false zu einem falschen Ergebnis. Der Wert 0 wird von PHP bei einem losen Vergleich als false interpretiert. Verwende deshalb immer den strikten Vergleich === false:

<?php

$text = 'PHP ist toll';

/* Falsch: 0 wird als false gewertet */
if (strpos($text, 'PHP') == false) {
echo 'Nicht gefunden'; // wird ausgegeben!
}

/* Richtig: strikter Vergleich */
if (strpos($text, 'PHP') === false) {
echo 'Nicht gefunden';
} else {
echo 'Gefunden an Position ' . strpos($text, 'PHP');
}
?>

PHP 8: str_contains() als einfachere Alternative

Wer nur wissen möchte, ob ein Teilstring vorhanden ist, ohne die genaue Position zu benötigen, kann seit PHP 8.0 die Funktion str_contains() verwenden. Das ist kürzer und vermeidet den === false Fallstrick:

<?php

$text = 'Das ist ein Beispieltext.';

if (str_contains($text, 'Beispiel')) {
echo 'Der Text enthält "Beispiel".';
}
?>

Zusätzlich gibt es seit PHP 8.0 auch str_starts_with() und str_ends_with(), die prüfen ob eine Zeichenkette mit einem bestimmten Text beginnt oder endet.

 

Tags:

 

Kommentare (0)

Noch keine Kommentare. Sei der Erste!

Melde dich an, um einen Kommentar zu schreiben.
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.