get_client_logo_files(); $rename_files = ""; $failed_rename_files = ""; foreach ($files as $file) { // Skip system entries if ($file === '.' || $file === '..' ) { continue; } $oldPath = $directory . $file; if (is_file($oldPath) && in_array(trim($file) , $client_logo_files)) { // Remove all spaces from filename $newFileName = preg_replace('/\s+|\x{00A0}|\x{200B}|\x{200C}|\x{200D}|\x{FEFF}/u', '', $file); $newPath = $directory . $newFileName; // Only rename if the name changed if ($oldPath !== $newPath) { if (rename($oldPath, $newPath)) { $rename_files .= "\n Renamed: $file → $newFileName \n"; } else { $failed_rename_files .= "\n Failed file: $file \n"; } } } } $dbUpdated = $this->update_client_logo_files(); log_message('error', 'Renamed Files: ' . $rename_files); log_message('error', 'Failed Renames: ' . $failed_rename_files); log_message('error', 'Database Update Status: ' . ($dbUpdated ? 'Success' : 'No Changes Made or Failed')); return $this->response->setJSON(['status' => 'success', 'message' => 'Logo renaming completed. kindly check backend logs for details', 'data' => [ 'renamed_files' => $rename_files, 'failed_renames' => $failed_rename_files ] ])->setStatusCode(200); } public function get_client_logo_files(){ $db = \Config\Database::connect(); $sql = "SELECT client_logo FROM clients WHERE client_logo IS NOT NULL AND TRIM(client_logo) <> '' "; $query = $db->query($sql); $results = $query->getResultArray() ?? []; $files = array_map(function($item) { return trim($item['client_logo']); }, $results); return $files; } public function update_client_logo_files(){ $db = \Config\Database::connect(); $sql = "UPDATE clients SET client_logo = REPLACE(REPLACE(REPLACE(client_logo, CHAR(160), ''), ' ', ''), '\t', '') WHERE client_logo IS NOT NULL AND TRIM(client_logo) <> '' "; $query = $db->query($sql); return $db->affectedRows() > 0; } }