Dateinamen mit Umlaute wie ä,ö,ü + ß,ç usw automatisch in ASCII zu konvertieren (zB. mit PHP)

Hi @all,

weil ich sehr häufig mehrere Datein in ASCII konvertieren muss, habe ich nach eine automatisierte Lösung gesucht aber nicht gefunden. Und habe ich selber eine Lösung erstellt. Unten ist meine Lösung, ich hoffe es wird euch helfen.

1. Diese Code als eine PHP Datei speichern.
2. Die zu konvertierende Bilder in Ordner kopieren wo sich PHP befindet
3. PHP ein Mal ausführen

Dabei wird solche Änderungen gemacht:

- Dateinamen zu Kleinbuchstaben konvertiert
- Leerzeichen usw werden zum "-"
- Ungültige Karakter (alles außer a-z, 0-9, . , -) werden entfernt

$files = scandir("./");

foreach( $files as $filename_original ) {

$filename_ascii_safe = trim ( iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $filename_original) );
$filename_ascii_safe = preg_replace("#[^a-z0-9]#sim", "-", $filename_ascii_safe);
$filename_ascii_safe = preg_replace("#\-+#sim", "-", $filename_ascii_safe);
$filename_ascii_safe = preg_replace("#\-(\w+)$#simU", ".$1", $filename_ascii_safe);
$filename_ascii_safe = strtolower($filename_ascii_safe);

rename($filename_original, $filename_ascii_safe);

$output .= " $filename_original --- $filename_ascii_safe


";

}

echo $output ;

Neuen Kommentar schreiben

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Profile picture for user Guest
Permanenter Link

V2: nur Bilder akzeptieren, andere Dateien nicht berühren:

$files = scandir("./");

foreach( $files as $filename_original ) {

if( !preg_match("#\.(jpg|png|gif)$#sim", $filename_original) ) continue;

$filename_ascii_safe = trim ( iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $filename_original) );
$filename_ascii_safe = preg_replace("#[^a-z0-9]#sim", "-", $filename_ascii_safe);
$filename_ascii_safe = preg_replace("#\-+#sim", "-", $filename_ascii_safe);
$filename_ascii_safe = preg_replace("#\-(\w+)$#simU", ".$1", $filename_ascii_safe);
$filename_ascii_safe = strtolower($filename_ascii_safe);

rename($filename_original, $filename_ascii_safe);

$output .= " $filename_original --- $filename_ascii_safe


";

}

echo $output ;
?>

Suche

Neueste Kommentare