php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.02.2006, 14:03  
Gast
 
Beiträge: n/a
Standard Position eines Strings rausfinden, der mehrmals vorkommt

Hi,

ich habe einen String, in dem jetzt zum beispiel (ist wirklich nur nen beispiel kann auch zeichenketten sein, ist für eine Suche gedacht) jedes "w" durch ein "w" ersetzt werden soll, egal ob groß oder klein schreibung.

ok, das ersetzen ist kein problem, da das Suchen nicht case-sensitive sein soll, habe ich das einfach mit eregi_replace gemacht. So, da ich aber auch wenn die Suche nicht case-sensitive sein soll, den zu ersetzenden buchstaben, aber trotzdem groß geschrieben haben möchte wenn er es im text ist, habe ich einfach folgendermaßen den Buchstaben aus dem STring geholt:

PHP-Code:
version eregi_replace($Begriff"[b]".substr($String,strpos($String,$Begriff),strlen($Begriff))."[/b]",$String);

//$String ist der String in dem ersetzt werden soll
//$Begriff ist das, was ersetzt werden soll 
dies klappt auch, allredings nur für das erstemal, dannach schreibt er immer so, wie es beim erstenmal war.

Also habe ich in der Dokumentation geguckt, wie es genau mit strpos aussieht, ob ich damit nicht auch die position des zweitenmals etc. bestimmen kann. das einzige was ich gefunden habe ist, dass ich noch das letzte Vorkommen mithilfe von strrpos, wobei ich dieser funktion auch nur einen Wert übergeben kann.

Nun meine Frage, wie kann ich jetzt auch die Position des zweiten oder dritten mals feststellen, wo der gesuchte string vorkommt und wie kann ich das oben passend einbringen?

Falls es hierzu doch eine Funktion in der Dokumentation gibt, bitte ich vielmals um entschuldigung und doch bitte den Namen oder den Link zu der entsprechenden Funktion

Grüße

ScherzkeCKs
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.02.2006, 14:18  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Typischer Fall von "warum einfach wenns auch kompliziert geht" ;)

Mit preg_replace() kannst du sog. backreferences verwenden. Schau dir dazu am besten mal die Beispiele im Manual an - da sparst du dir den ganzen Kram mit strpos...
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 12.02.2006, 16:09  
Gast
 
Beiträge: n/a
Standard

so,

ich sitz da jetzt schon fast 2 STunden dran und bin mittlerweile komplett verzweifelt.

ich verstehe das nicht so genau mit dem \\n bzw. den $n bei der Rückreferenzierung.

Folgendes steht als Beispiel in der Dokumentation:
PHP-Code:
<?php $zeichenkette '15. April 2003';$suchmuster '/(\d+)\. (\w+) (\d+)/i';$ersetzung '${2}1,$3';echo preg_replace($suchmuster$ersetzung$zeichenkette);?>
hierbei verstehe ich aber schon das Suchmuster nicht, bei diesem ersetzen ${2}1,$3 blick ich aber gar nicht durch.

nun gut, also habe ich einfach mal nen bisschen rumprobiert und mehr oder weniger wahllos, weil ich selbst beim 7ten mal durchlesen nicht wirklich verstanden habe, wie ich das genau verwenden soll, einfach mal folgendes, aber auch schon viele andere Versionen davon ausprobiert:
PHP-Code:
<?php

$name 
preg_replace($Begriff"[b]".'$1'."[b]",$String);

?>
klappt aber überhaupt nicht,

könnt ihr mir sagen, wie ich diese Rückreferenzierung zu verwenden hab?
 
Alt 12.02.2006, 19:15  
Gast
 
Beiträge: n/a
Standard

sry für doppelpost.

habe mittlerweile rausgefunden wie es geht, nun habe ich aber noch das problem, das preg_replace case-sensitive ist, und das will ich ja eben nicht, heißt es soll sowohl groß als auch kleinschreibung suchen
 
Alt 12.02.2006, 19:17  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Dafür gibt es den Modifier i.
Einfach ganz hinten an dein Suchmuster anhängen
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 12.02.2006, 19:20  
Gast
 
Beiträge: n/a
Standard

Vielen dank!

das ging leichter als ich dachte.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mit position nachruecken imported_kremser Datenbanken 2 08.02.2006 21:50

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
strpos alle vorkommen, php string position suchen, php strpos alle vorkommen, http://www.php.de/php-tipps-2006/36988-position-eines-strings-rausfinden-der-mehrmals-vorkommt.html, php position string finden, php zweites vorkommen eines zeichens, position eines strings, php alle vorkommen suchen string, php position eines zeichens, string mehrfach vorkommen ersetzen php, php strpos mehrfach, php rückreferenzierung, php string position finden, php mehrfach suchen und ersetzen, php string mehrfaches vorkommen, php letztes leerzeichen in string finden, php zweites vorkommen ersetzen, php letztes vorkommen ersetzen, php von begriff zu begriff ersetzen, php strpos 2. vorkommen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.