Webstatt.org - Community seit 2006 - 2012 (2024?)

str_replace streikt

Avatar user-317
05.04.2006 14:49

Huhe,
bei mir Streikt grad str_replace beim Umwandeln von Umlauten :

$bild2 = str_replace('ä', 'ae', $bild);


Problem : Der Umlaut wird nicht ersetzt. Weiter unten lasse ich noch ein Leerzeichen mit _ ersetzen und das klappt. Jemand ne Idee? Ich poste zur Sicherheit gleich noch den kompletten Code.

<?php
$verzeichnis = dir('events'zwinkern;

while($bild = $verzeichnis->read()) {
if(eregi('.jpg$', $bild) OR eregi('.jpeg$', $bild)) {
echo "Das Bild <b>$bild</b> wurde umbenannt in : ";

$bild2 = str_replace('ä', 'ae', $bild);
$bild2 = str_replace('ü', 'ue', $bild);
$bild2 = str_replace('ö', 'oe', $bild);
$bild2 = str_replace('Ä', 'Ae', $bild);
$bild2 = str_replace('Ü', 'Ue', $bild);
$bild2 = str_replace('Ö', 'Oe', $bild);
$bild2 = str_replace(' ', '_', $bild);

echo "<b>$bild2</b><br />\n";

rename('events/' . $bild, 'events/' . $bild2);
}
}
?>

Avatar user-182
05.04.2006 15:07

zeile 8 bis 14:
- - 3. argument:
- - - $bild2 statt $bild zwinkern

Seid ihr auch schon wix'r? xD
Avatar user-317
05.04.2006 15:12

Weiß nicht ob du das so gemeint hast, aber so gehts :
<?php
$verzeichnis = dir('events'zwinkern;

while($bild = $verzeichnis->read()) {
if(eregi('.jpg$', $bild) OR eregi('.jpeg$', $bild)) {
echo "Das Bild <b>$bild</b> wurde umbenannt in : ";

$bild2 = $bild;
$bild2 = str_replace('ä', 'ae', $bild2);
$bild2 = str_replace('ü', 'ue', $bild2);
$bild2 = str_replace('ö', 'oe', $bild2);
$bild2 = str_replace('Ä', 'Ae', $bild2);
$bild2 = str_replace('Ü', 'Ue', $bild2);
$bild2 = str_replace('Ö', 'Oe', $bild2);
$bild2 = str_replace(' ', '_', $bild2);

echo "<b>$bild2</b><br />\n";

rename('events/' . $bild, 'events/' . $bild2);
}
}
?>

Avatar user-162
05.04.2006 15:33

ist ja klar bei dem Code:

$bild2 = str_replace('ä', 'ae', $bild); // jetzt wird $bild2 der text von $bild mit ä's ersetzt
$bild2 = str_replace('ü', 'ue', $bild); // jetzt wird das obrige gelöscht und neu das ü ersetzt
$bild2 = str_replace('ö', 'oe', $bild2); // jetzt wird der code von oben übernommen


überschreibst du ja jedes mal $bild2 wider von neuem, so das am Schluss nur das Leerzeichen mit _ ersetzt wird weil es der letzte Befehl ist.
Analog würde es auch gehen wenn du überall $bild genommen hättest.

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-317
05.04.2006 15:58

Ich habs ja jetzt auch schon gemerkt frech

user-203
05.04.2006 16:45

Um jetzt noch an unnützem Code zu sparen würde ich dir empfehlen, dich über die Möglichkeit von str_replace zu informieren, auch Arrays zu durchlaufen
http://de.php.net/manual/de/function.str-replace.php


$suchen = array( 'ö', 'ä', 'ü' );
$ersetzen = array( 'oe', 'ae', 'ue' );
$bild2 = str_replace( $suchen, $ersetzen, $bild2 );

Denkt dran, Kinder auf dem Rücksitz verursachen Unfälle, Unfälle auf dem Rücksitz verursachen Kinder.
Avatar user-317
05.04.2006 18:22

Merci, ist getan.