php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.12.2008, 12:15  
Neuer Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 28
solvero befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] str_replace

Habe eine csv Datei, in der u.a. Kategorien innerhalb einer Spalte aufgelistet werden. Nun möchte ich drei Ausdrücke umbenennen habe es so versucht, geht aber nicht, weil immer nur die erste zeile berücksichtigt wird:

$neu4 = str_replace("Ein-/", "Ein-", $Daten[4]);
$neu4 = str_replace("Digital-/", "Digital-, $Daten[4]);
$neu4 = str_replace("Consumer/", "Consumer-", $Daten[4]);

Wie löse ich dies, damit alle Ausdrücke ersetzt werden?
solvero ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.12.2008, 12:20  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Du könntest die zu ersetzenden Werte in ein Array schreiben,dann das Array mit foreach durchlaufen,prüfen ob der Wert auch wirklich im Array steht und dann in der Schleife das str_replace machen.

Oder aber mit einem preg_replace_callback.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 28.12.2008, 12:29  
Neuer Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 28
solvero befindet sich auf einem aufstrebenden Ast
Standard Re:

Kannst Du mir bitte ein Beispiel-Code zeigen?! Bin noch totaler Anfänger.
Für mich sind das alles bömische Dörfer!
DANKE!
solvero ist offline  
Alt 28.12.2008, 16:50  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das ist ein einfaches logisches Problem.
Du ersetzt Ein-/ durch Ein in dem Text der in der Variable $Daten[4] steht, und schreibst das Ergebnis in $neu4.
Danach ersetzt du Digital-/ durch Digital - und zwar in dem Text der in der Variable $Daten[4] steht. An $Daten[4] hast du aber nie etwas verändert, das heißt dort steht immer noch der Ausgangstext (in dem Ein-/ noch nicht ersetzt wurde) drinnen, nicht das Resultat aus deinem ersten str_replace().

Heißt im Klartext: Du musst beim zweiten, dritten, ... str_replace() deine Veränderungen natürlich auf $neu4 anwenden und in $neu4 schreiben, nicht auf $Daten[4] anwenden und in $neu4 schreiben.

mfg
BlackWolf ist offline  
Alt 28.12.2008, 17:08  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Oder so:

PHP-Code:
$ersetzen = array(
  
'Ein-/'      =>  'Ein-',
  
'Digital-/'  =>  'Digital-',
  
'Consumer-/' =>  'Consumer-',
);

$daten[4] = strtr($daten[4],$ersetzen); 
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 29.12.2008, 08:58  
Neuer Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 28
solvero befindet sich auf einem aufstrebenden Ast
Standard RE:

Vielen Dank, funktioniert!
Ich wünsche euch noch einen guten Rutsch ins neue Jahr!
solvero ist offline  
 


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


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:18 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