Problem mit Vorhaben, mehrere Zeichen durch best. zu ersetzen
enrico
- php
Hallo,
ich möchte mehrere, einzelne Zeichen durch genau jeweils ein anderes, spezielles
Zeichen ersetzen, nach Möglichkeit in einem Durchgang.
So soll ein "Ö" durch ein "OE", ein "Ä" durch ein "AE", ein "Ü" durch ein "UE" und
ein " " durch ein "_" ersetzt werden:
$Zu_ersetzen = array ("Ö", "Ä", "Ü", " ");
$Cover = str_replace(" ", "_", $Film[$i]["Titel"]);
Mit "str_replace" kann ich aber scheinbar nur ein Zeichen angeben, das an die Stelle
beliebiger anderer Zeichen eingesetzt wird.
Wie kann ich mein Vorhaben möglichst einfach umsetzen?
Vielen Dank für Eure Unterstützung.
Gruß,
Enrico
Hallo ChrisB & Paul,
besten Dank, dieses eine Vorhaben klappt jetzt einwandfrei ohne jegliche Probleme.
Nun möchte ich hier noch einen Schritt weitergehen und eine Art "Standortangabe" bezüglich der aktuellen Ansicht
ausgeben lassen, die nach dem Muster "{Anzeige} >> {Sortierung} >> {Richtung}" aufgebaut ist.
Da ich, bis auf einige wenige Ausnahmen, eine feste Zahl an möglichen "Standortangaben" habe,
möchte ich die Belegung der Variablen, die dann die einzelnen "Standortangabe" beinhalten,
über "str_replace" bewerkstelligen mit Übergabe eines Arrays.
Ich habe folgenden String, der die Formatierungen der Ausgabe festlegt:
$Schablone = '<font id="Vordergrund">ANZEIGE</font>
<font id="Hintergrund">»</font>
<font id="Vordergrund">SORTIERUNG</font>
<font id="Hintergrund">»</font>
<font id="Vordergrund">RICHTUNG</font>';
Jetzt das Array mit den zu ersetzenden Platzhaltern:
$Zu_ersetzen = array ("ANZEIGE", "SORTIERUNG", "RICHTUNG");
Nachfolgend die Funktion, die die Ersetzungen vornehmen und den Ergebnis-String zurückgeben soll:
function Anzeige_aktualisieren ($Ersetzen_durch)
{
return (str_replace ($Zu_ersetzen, $Ersetzen_durch, $Schablone));
}
Die Erzeugung der auszugebenden Variablen habe ich mir wie folgt vorgestellt:
$Alle_Filme = Anzeige_aktualisieren ($Ersetzen_durch = array ("Alle Filme", "Nr.", "Aufsteigend"));
$Nr_aufsteigend = Anzeige_aktualisieren ($Ersetzen_durch = array ("Alle Filme", "Nr.", "Aufsteigend"));
$Nr_absteigend = Anzeige_aktualisieren ($Ersetzen_durch = array ("Alle Filme", "Nr.", "Absteigend"));
$Titel_aufsteigend = Anzeige_aktualisieren ($Ersetzen_durch = array ("Alle Filme", "Titel", "Aufsteigend"));
...usw...
Ich bekomme zwar keine Fehlermeldung, aber leider auch keine Bildschirmausgabe.
Wie kann ich mein Vorhaben, auf Basis meiner Überlegungen, umsetzen?
Vielen Dank im Voraus für Eure Mithilfe.
Gruß
Enrico
Hi,
function Anzeige_aktualisieren ($Ersetzen_durch)
{
return (str_replace ($Zu_ersetzen, $Ersetzen_durch, $Schablone));
}
Ich bekomme zwar keine Fehlermeldung, aber leider auch keine Bildschirmausgabe.
ich habe mir das jetzt nicht näher angeschaut, weil de nicht erwarten kannst eine Analyse aus einem fetzen Quelltext zu bekommen, dem ein grösseres Projekt zugrunde liegt. Dazu müsste ich mich erst da rein denken, und dazu habe ich nun echt keine Lust, sorry.
Aber was mir sofort auffällt, du nutzt oben stehende Funktion, die nur einen Parameter kennt und auch nur die str_replace() ausführt.
1. Warum das dann überhaupt noch in einer Funktion einkapseln, schliesslich ist str_replace() doch schon eine Funktion.
2. Selbst wenn es einen guten grund dafür gibt, wie erhält die Funktion
denn den Wert der Variabeln $Zu_ersetzen und $Schablone?
Das Forum hier ist zwar gut, aber ich glaube du erwartest ein Wunder;-)
Paul
Hi,
Mit "str_replace" kann ich aber scheinbar nur ein Zeichen angeben, das an die Stelle beliebiger anderer Zeichen eingesetzt wird.
Nein.
Wie kann ich mein Vorhaben möglichst einfach umsetzen?
RTFM - again ...
http://www.php.net/manual/en/function.str-replace.php
MfG ChrisB