Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [RISOLTO] [PHP] Problemino con unlink

    Codice PHP:
    <?
    $nomefile 
    'Don\'t tell me [On The Record With Bob Costas, 28.05.04].mpg';
    unlink($nomefile);
    ?>
    Non riesco a cancellare il file da FTP perchè dice che il nome del file non è consentito, credo per questo carattere: \
    E quando eseguo lo script sembra ignorare quel carattere e quindi non trovare il file sul server:

    Warning: unlink(Don't tell me [On The Record With Bob Costas, 28.05.04].mpg): No such file or directory in /web/htdocs/www.domain.tld/home/unlink.php on line 3

    C'è un modo per non far ignorare lo slash al contrario ? (scusate l'ignoranza ma come si chiama lo slash al contrario? :maLOL: )

    EDIT:
    Ho risolto grazie un mio amico che mi ha detto di usare
    unlink(addslashes($nomefile));
    al posto di
    unlink($nomefile);
    Ciao!!!

  2. #2
    Ora hai risolto, però quando esegui un upload ti conviene convertire il nome del file eliminando i caratteri speciali, che possono dare problemi in alcuni casi. Pensa ad esempio se un utente che usa linux invia un file e magari il tuo server è windows, o viceversa; i caratteri consentiti nei nomi di files sono diversi tra linux e windows quindi possono nascere problemi. Puoi usare una funzione come questa:

    Codice PHP:
    /*
        Dato un nome di file, lo ripulisce da tutti i caratteri speciali e lettere accentate
        e restituisce il nuovo nome. Per upload di files.
        
        Codice originario:    [url]http://www.phpclasses.org/browse/file/6673.html[/url]
    */
    function fix_file_name($string){
        
    $string strtr ($string"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ""AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
        for(
    $i=$i strlen($string); $i++) {
            if(!
    ereg("([0-9A-Za-z_\.])",$string[$i]))
                
    $string[$i] = "_";
        }
        return 
    $string;


  3. #3
    Grazie del consiglio, ma già lo sapevo.
    Avevo fatto il download da url di un file sul server (linux) e nel nome del file che il server scaricava c'era un apostrofo, a cui ha premesso \ dopo averlo scaricato. Dopo averlo scaricato, non son più riuscito a rinominarlo/eliminarlo proprio perchè mi diceva che il file conteneva appunto caratteri non consentiti, quindi ho ricorso allo script.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.