Umlaute in Dateinamen umwandeln.
andi
- php
Hallo zusammen,
Hab hier im Archiv schon gestöbert aber noch keinen Beitrag gefunden, der mir wirklich weiterhilft.
Ich möchte Umlaute (ÄäÜüÖö), die in Dateinamen vorkommen (z.B.Änderungsmeldung_Möglich.doc), vor dem abspeichern in die mysql db umwandeln in Ae,ae,Oe,oe,Ue,ue. Wenn ich das nicht mache gibts beim Zugriff auf diese Dateien eine Fehlermeldung das die Datei nicht gefunden wurde.
Habs schon versucht mit der replace Funktion von php, mit strtr - aber das funkt nicht.
Kann mir hier jemand einen Tip geben wie man hier am besten vorgeht?
Danke
Andi
Hi Andy,
ich denke, Du suchst das hier:
http://www.selfphp.de/funktionsreferenz/string_funktionen/str_replace.php
Gruß von Tom C.
Hallo Leute,
Hab das jetzt auf folgende Arten probiert, aber es funkt nicht. Irgendwo ist der Hund begraben, aber ich komm nicht drauf. Hier mal die beiden verwendeten Scripts:
1.)
$Vorlage=$Vorlage;
$sql="INSERT INTO vorlagen (Beschreibung,Abteilung,Vorlage,IpAdresse,Bereich) VALUES ('$Beschreibung','$Abteilung','$Vorlage','$REMOTE_ADDR','$Bereich')";
$result=mysql_query($sql);
$Id=mysql_insert_id();
if(!empty($Vorlage) and $Vorlage!="none")
{
$trans=array ("Ä" => "AE", "Ö" => "OE", "Ü" => "UE", "ä" => "ae", "ö" => "oe", "ü" => "ue");
$Vorlage=strtr("$Vorlage",$trans);
$Zieldatei=$Id."_".$Vorlage_name;
copy($Vorlage,"vorlagen/".$Abteilung."/".$Zieldatei);
$sql="UPDATE vorlagen SET Vorlage='$Zieldatei' WHERE Id='$Id'";
$result=mysql_query($sql);
}
Sorry, irrtümlich ohne dem zweiten Beispiel gespeichert. Hier also Beispiel Nummer 2.
$Vorlage=$Vorlage;
$sql="INSERT INTO vorlagen (Beschreibung,Abteilung,Vorlage,IpAdresse,Bereich) VALUES ('$Beschreibung','$Abteilung','$Vorlage','$REMOTE_ADDR','$Bereich')";
$result=mysql_query($sql);
$Id=mysql_insert_id();
if(!empty($Vorlage) and $Vorlage!="none")
{
$array_1 = array("ä","ü","ß","ö","Ä","Ö","Ü");
$array_2 = array("ae","ue","ss","oe","Ae","Oe","Ue");
for($x=0;$x<3;$x++)
{
$Vorlage=str_replace($array_1[$x],$array_2[$x],$Vorlage);
}
$Zieldatei=$Id."_".$Vorlage_name;
copy($Vorlage,"vorlagen/".$Abteilung."/".$Zieldatei);
$sql="UPDATE vorlagen SET Vorlage='$Zieldatei' WHERE Id='$Id'";
$result=mysql_query($sql);
}
Hi,
Habs schon versucht mit der replace Funktion von php, mit strtr - aber das funkt nicht.
Kann mir hier jemand einen Tip geben wie man hier am besten vorgeht?
ich benutze für solche Zwecke ebenfalls strtr(). Dazu musst du die Funktion mit einem Array als zweiten Parameter aufrufen, siehe http://de2.php.net/manual/de/function.strtr.php, 2. Beispiel. Was hat denn bei dir nicht funktioniert?
Gruß,
Andreas.