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 :

[débutant] Parse error, unexpected T_STRING


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 104
    Points : 49
    Points
    49
    Par défaut [débutant] Parse error, unexpected T_STRING
    Salut,

    j'ai récupéré un script permettant le téléchargement de fichiers. Je l'ai transposé dans une fonction mais l'erreur de mon titre apparaît !

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    function dowloadFile($Fichier_a_telecharger) {
     
        // Reconnaissance de l'extension du fichier afin d'éviter les erreurs de corruptions 
     
        switch(strrchr(basename($Fichier_a_telecharger), ".")) {
     
            case ".gz": $type = "application/x-gzip"; break;
            case ".tgz": $type = "application/x-gzip"; break;
            case ".zip": $type = "application/zip"; break;
            case ".pdf": $type = "application/pdf"; break;
            case ".png": $type = "image/png"; break;
            case ".gif": $type = "image/gif"; break;
            case ".jpg": $type = "image/jpeg"; break;
            case ".txt": $type = "text/plain"; break;
            case ".htm": $type = "text/html"; break;
            case ".html": $type = "text/html"; break;
            default: $type = "application/octet-stream"; break;
     
        }
     
        header("Content-disposition: attachment; filename=$Fichier_a_telecharger"); 
        header("Content-Type: application/force-download"); 
    header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n
        header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger)); 
        header("Pragma: no-cache"); 
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); 
        header("Expires: 0"); 
        readfile($chemin . $Fichier_a_telecharger);
    }
    Le problème semble venir des ". Si je les remplace par ', l'erreur se propage au delà de ma fonction où le code est bon...

    Je vous remercie d'avance pour votre aide.

  2. #2
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Parse error, unexpected T_STRING
    Si tu nous donnais le numéro de la ligne en question ça nous aiderait beaucoup

  3. #3
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 104
    Points : 49
    Points
    49
    Par défaut
    Désolé, en fait je n'ai pas donné exactement le bon code ! Voici ma fonction :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    function downloadGeneratedFile($Fichier_NomComplet)
    {
     
    	$tableau = explode ("\", $Fichier_NomComplet);
     
    	$indiceNomFichier = count($tableau)-1;
     
    	// Récupération du chemin du fichier à télécharger
    	$chemin = "";
            for($i=0;$i<$indiceNomFichier;$i++) {
                  $chemin = $chemin.$tableau[$i];
            }
     
    	// Récupération du nom de fichier à télécharger
    	$Fichier_a_telecharger = $tableau[$indiceNomFichier];
     
             $type = "application/octet-stream";
     
             header("Content-disposition: attachment; filename=$Fichier_a_telecharger");
             header("Content-Type: application/force-download");
             header("Content-Transfer-Encoding: $type\n");
             header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger));
             header("Pragma: no-cache");
             header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
             header("Expires: 0");
             readfile($chemin . $Fichier_a_telecharger);
     
    }
    J'ai le premier message : parse error, unexpected '"' pour la ligne : Si je met ' au lieu de " pour la chaîne vide, ce premier problème est résolu mais je ne comprends pas pourquoi cela change quelque chose...

    Ensuite, j'ai l'erreur de mon titre à toutes les lignes où il y a les guillemets pour représenter les chaînes de caractères !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau = explode ("\", $Fichier_NomComplet);
    L'antislash permet de proteger le caractère suivant. Donc si tu ecris \" le double quote n'est pas considere comme fermant la chaine de caractere, mais comme faisant partie de la chaine.

    Si tu veux avoir \ il faut le doubler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau = explode ("\\", $Fichier_NomComplet);

  5. #5
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 104
    Points : 49
    Points
    49
    Par défaut
    Et oui bien sûr, je n'avais pas fais attention à ce point !!!

    Ma fonction ne fonctionne pas apparemment mais au moins je n'ai plus cette erreur.

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

Discussions similaires

  1. Parse error: unexpected T_STRING
    Par Philcmoi dans le forum Langage
    Réponses: 2
    Dernier message: 04/10/2009, 14h28
  2. Réponses: 5
    Dernier message: 05/04/2009, 00h07
  3. Réponses: 3
    Dernier message: 27/12/2008, 11h17
  4. Parse error: syntax error, unexpected T_STRING
    Par sid611 dans le forum Langage
    Réponses: 5
    Dernier message: 13/06/2008, 10h22
  5. Réponses: 36
    Dernier message: 07/05/2006, 15h35

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