normalizeEncoding() public static method

On HFS+ filesystem (OS X) filenames are stored in UTF8 NFD while all other filesystems are using UTF8 NFC. NFC is more common in general.
public static normalizeEncoding ( string $string ) : string
$string string Input string
return string
Beispiel #1
0
<?php

// *************************************** SYNC FUNCTIONS
// ----- SYNC DB WITH FILES DIR
if ($PERMALL) {
    // ---- Dateien aus dem Ordner lesen
    $folder_files = [];
    $path = rex_path::media();
    $iterator = rex_finder::factory($path)->filesOnly()->ignoreFiles(['.*', rex::getTempPrefix() . '*'])->sort();
    foreach ($iterator as $file) {
        $folder_files[] = rex_string::normalizeEncoding($file->getFilename());
    }
    // ---- Dateien aus der DB lesen
    $db = rex_sql::factory();
    $db->setQuery('SELECT * FROM ' . rex::getTablePrefix() . 'media');
    $db_files = [];
    $db_filenames = [];
    foreach ($db->getArray() as $db_file) {
        $db_filenames[] = $db_file['filename'];
        $db_files[] = $db_file;
    }
    $diff_files = array_diff($folder_files, $db_filenames);
    $diff_count = count($diff_files);
    // Extra - filesize/width/height DB-Filesystem Sync
    foreach ($db_files as $db_file) {
        $path = rex_path::media($db_file['filename']);
        if (!file_exists($path)) {
            continue;
        }
        $file_filesize = filesize($path);
        if ($db_file['filesize'] != $file_filesize) {