IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Unlink() et nom de fichier avec espace


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Février 2007
    Messages
    96
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 96
    Points : 62
    Points
    62
    Par défaut Unlink() et nom de fichier avec espace
    Bonjour à tous,

    je reviens parmi vous avec un petit souci de suppression de fichiers.

    Mon script ne me permet pas de supprimer les fichiers dont le nom possède des espaces.

    ex : Tata titi.pdf

    J'ai essayé de remplacer les espaces par des underscore mais les espaces persistent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $name='../data/pdf/'.$_POST['nom_du_fichier'];
    $rename=str_replace(' ', '_',$name),
    rename($name,$rename);
    unlink($name);
    Je percute pas, si je mets le nom du fichier en dur le renommage est effectué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $name=str_replace(' ', '_','../data/pdf/Tata titi.pdf'); // ==> Tata_titi.pdf
    $name=str_replace(' ', '_','../data/pdf/'.$_POST['nom_du_fichier']); // ==> Tata titi.pdf
    Je vous remercie par avance de m'éclairer de vos conseils avisés, si vous avez un peu de disponibilité.

    Une très bonne journée.

    Cordialement

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    es-tu certain de ce que tu as dans $_POST['nom_de_fichier'] ?

    Car chez moi ça fonctionne même avec des espaces et même quand ça vient du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $fichier = 'test suppression.txt';
    $fp = fopen($fichier, 'w');
    fwrite($fp, '1');
    fwrite($fp, '23');
    fclose($fp);
     
    if (isset($_POST) && !empty($_POST['fichier'])) {
    	unlink($_POST['fichier']);
    }
    ?>
     
    <form method="post" action="">
    <input type="text" name="fichier" value="<?php echo $fichier; ?>" />
    <input type="submit" />
    </form>
    Vérifie tes chemins d'accès (file_exists() par exemple) fais des echo() des chemins et des variables...

    As-tu bien l'extension d'indiquée ?

    PS : si ton unlink() marche pas, y'a de fortes chances que le rename() ne marche pas, donc ça ne sert à rien... le problème vient d'ailleurs que l'espace je crois

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Février 2007
    Messages
    96
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 96
    Points : 62
    Points
    62
    Par défaut
    Bonjour darkstar123456 et merci pour ta réponse rapide.

    La suppression fonctionne très bien pour les noms de fichiers sans espace. C'est bien le str_replace qui foire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $name='../data/pdf/Tata titi.pdf';
    $rename=str_replace(' ', '_',$name);
    echo $name; // ==> ../data/pdf/Tata titi.pdf
    echo $rename; // ==> ../data/pdf/Tata_titi.pdf
    rename($name,$rename); // fichier bien renommé
    unlink($rename); // fichier supprimé avec succès
     
    //----------------------------------------
     
    $name='../data/pdf/'.$_POST['nom_du_fichier'];
    $rename=str_replace(' ', '_',$name);
    echo $name; // ==> ../data/pdf/Tata titi.pdf
    echo $rename; // ==> ../data/pdf/Tata titi.pdf
    rename($name,$rename); // pas renommé
    unlink($rename); // pas supprimé

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    le nom du fichier dans le formulaire, c'est toi qui l'y écrit avec tes ptites mains ?

    car ton str_replace ne semble pas marche si ton copier/coller est correct... c'est donc ça ne serait pas un espace que tu envoies ? Oo

    ne serait-ce pas dans un textarea avec des retours à la ligne par hasard ??

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Février 2007
    Messages
    96
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 96
    Points : 62
    Points
    62
    Par défaut
    C'est un bouton radio qui contient le nom du fichier.

    J'ai trouvé la réponse à mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<input type=\"radio\" name=\"nom_du_fichier\" value=".str_replace(' ', '$nbsp;',$file).">";
    J'ai remplacé par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo "<input type=\"radio\" name=\"nom_du_fichier\" value=".str_replace(' ', '_',$file).">";
    //..
    //..
    //..
    $name='../data/pdf/'.$_POST['nom_du_fichier'];
    $rename=str_replace('_', ' ',$name);
    Un grand merci darkstar123456 pour tes conseils et ta patience.

    Je suis confus...

    Excellent week-end.

    Cordialement.

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    hihi wi je vois l'erreur...

    t'as écris $nbsp, au lieu de &nbsp; bonne continuation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Commande dos For et nom de fichiers avec espaces
    Par VinnieMc dans le forum Administration
    Réponses: 1
    Dernier message: 28/06/2008, 15h12
  2. Réponses: 1
    Dernier message: 11/01/2008, 16h17
  3. Nom de fichier avec espaces
    Par GLDavid dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 07/05/2007, 09h38
  4. [système]shell + Nom de fichier avec Espace
    Par delphine_lep dans le forum Access
    Réponses: 3
    Dernier message: 23/03/2007, 16h24
  5. download fichier avec espace dans le nom
    Par cb68 dans le forum Langage
    Réponses: 8
    Dernier message: 23/11/2005, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo