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

  • 1 month 2 weeks ago
    [preflight] The following restricted PHP modes have non-empty values: {open_basedir}. This configuration is incompatible with drush.

    Same with Drush 13 + PHP 8.3

  • 1 month 3 weeks ago
    Acronis CyberProtect Agent For Linux (Strato Root Server)

    Initializing...

    Error : Failed to install the required package 'RPM' by using APT. Please install it manually. 

    Exit


    Solution:

  • 1 month 3 weeks ago
    Acronis CyberProtect Agent For Linux (Strato Root Server)

    So habe es installiert und dann mit Hilfe von Key/Code (über Website von Acronis Cyber Protect) aktiviert:

  • 1 month 3 weeks ago
    No route found for the specified format html. Supported formats: csv, json. (Drupal Routing)

    I have a view with a path like /my-content-export to export entivies as JSON or CSV.

  • 1 month 3 weeks ago
    InvalidArgumentException: The controller for URI "/admin/flush" is not callable.

    admin_toolbar 3.5.2 is the reason. Patch coming ...

  • 2 weeks 2 days ago
    PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock

    Drupal 10.4:

  • 2 months 3 weeks ago
    Server install & config : Debian 12 + Plesk + Apache + nginx + MariaDB + Solr

    Tools & Settings >> Security Policy :

     Allow only secure FTPS connections 

  • 4 months 1 week ago
    MariaDB Server Performance Optimieren

     

    /usr/sbin/mariadbd --help --verbose | grep "query.*size"
  • 4 months 1 week ago
    MariaDB Server Performance Optimieren

    Commandline:

    systemctl restart mariadb
  • 4 months 1 week ago
    MariaDB Server Performance Optimieren

    After my changes in /etc/mysql/db-performance.cnf