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

  • 4 weeks ago
    Transaction isolation level REPEATABLE-READ The recommended level for Drupal is "READ COMMITTED". (Drupal Status Report)

     Edit "/etc/my.cnf" ( under [mysqld] ):

    transaction_isolation="READ-COMMITTED"

    Restart MariaDB / MySQL:

  • 1 month ago
    Wget - Eine Webseite rekursive downloaden

    wget -U 'Mozilla/MyUserAgent' -P MyTempDir123 --wait=0.2 --random-wait -nd -r -x -l 4 -e robots=off --reject

  • 1 month ago
    Wget - Eine Webseite rekursive downloaden

    wget -U 'Mozilla/MyUserAgent2024' -P MyOutPutDirectory --wait=1 --random-wait -nd -r -l 2 -e robots=off --reject

  • 2 months 1 week ago
    CPU benchmarking with sysbench (single-threaded/all cores)

     

    # sysbench --threads="$(nproc)" cpu run

  • 2 months 1 week ago
    CPU benchmarking with sysbench (single-threaded/all cores)

    # sysbench --threads="$(nproc)" cpu run

  • 2 months 1 week ago
    Linux Autovervollständigung - bash autocomplete
    source ~/.bashrc

    Diese Lösung wird empfohlen aber hat bei mir nicht funktioniert.

    Welche Alternative gibt es?

  • 2 months 1 week ago
    PHP-CLI auf PHP8.2 umstellen (für Composer, Drush etc)

    ln -snf /opt/plesk/php/8.3/bin/php /etc/alternatives/php

  • 2 months 1 week ago
    Drush Update failed (require php >=8.2)

    In composer.json, update: 

     

  • 2 months 1 week ago
    Drupal: Anmeldung fehlgeschlagen Es hat mehr als 5 fehlerhafte Anmeldeversuche für dieses Benutzerkonto gegeben. Es ist vorübergehend gesperrt.
    drush sqlq "DELETE FROM flood"
  • 2 months 1 week ago
    Drupal SMTP + Gmail funktioniert nicht mehr (Passwort ist richtig); was ist die Lösung?