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 :

readfile(file.php) affiche le code, pas d'interprétation en php


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Par défaut readfile(file.php) affiche le code, pas d'interprétation en php
    Bonjour,

    j'utilise readfile() pour lire un fichier php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Content-Type: application/x-php');
    readfile("rep/file.php");
    or ce que j'obtiens c'est pas la page interprété en php, mais le code écrit dedans.
    Comment faire pour avoir l'interprétation du code avec la fonction readfile() ?
    J'ai essayé plusieurs header('Content-Type: '); comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-Type: application/x-php');
    Mais ça marche pas.
    Je ne veux pas utiliser d'autre fonction que readfile() comme par ex include() ou require().

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi ne pas vouloir utiliser la fonction qui fait ce que tu veux ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Je ne veux pas utiliser d'autre fonction que readfile() comme par ex include() ou require().
    Si le fichier se trouve dans ton espace disque (ton espace d'hébergement par exemple), je ne vois aucune raison à ne pas vouloir exploiter include/require vu que c'est leur objectif d'interpréter le code Php, ça ne fait pas juste d'inclure justement.
    Vouloir faire autrement serait se mettre des bâtons dans les roues.


    Toujours est il qu'il est normal qu'un header() ne fonctionne pas dans la mesure où cette fonction est faite pour envoyer une information d'entête (comme le type de fichier) à un client, donc un navigateur (le plus souvent).
    Un navigateur ne sait pas se que c'est le Php.
    Un navigateur sait interpréter que du code client : (X)HTML, Css, JS, entre autre.


    Explique pourquoi cette restriction, qu'est-ce que tu veux faire.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Par défaut
    include() ou require() sont moins rapides et utilisent plus de mémoire que readfile().
    En plus pour des gros fichiers ex >12ko include() ou require() ne fonctionne plus.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    include() ou require() sont moins rapides et utilisent plus de mémoire que readfile().
    Pitetre parce que include() interprete le PHP et readfile() ne fait que lire.

    En plus pour des gros fichiers ex >12ko include() ou require() ne fonctionne plus.
    Si tu parles de 12ko, evidemment que ça fonctionne.
    Si tu parles de 12Mo, j'ai un doute sur ton PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    include() ou require() sont moins rapides et utilisent plus de mémoire que readfile().
    On s'en fiche de la mémoire étant donné que ton problème c'est l'interprétation du code Php.
    readfile() -> c'est pour lire un fichier (donc lecture brut)
    include/require -> c'est pour interpréter le code Php.

    Quelque part il me parais normal est logique que l'interprétation demande plus de mémoire vu que ça en fait plus que lire.


    En plus pour des gros fichiers ex >12ko include() ou require() ne fonctionne plus.
    Depuis quand 12 Ko serait un gros fichier ?

    Si le code Php est mal codé (non optimisé, erreurs à répétitions, voir boucle infini), il est normal que cela ne fonctionne pas (ou plus).


    Pour ma part tu as un problème de code, et tu t'éloignes du problème de fond en recherchant d'autres solutions.
    Ca ne règle pas le problème en général, ça le contourne uniquement.


    Inclus ton fichier avec include (ou require), et essai de voir où ça coince (débogage).
    -> Erreurs, lenteurs, etc ...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Par défaut
    J'ai testé include() et require() sur d'autres fichier que de type PHP, ça ne fonctionne plus à partir d'une certaines taille ex image jpg > 8ko.

    Mon fichier marche en utilisant include() ou require().

    Mais bon, comment faire en utilisant readfile(), pour qu'il interprète le PHP.

    Bon je vai réessayer en mettant le header() dans le fichier php, me semble avoir déjà fait ça.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je viens d'inclure un fichier PHP de 23Mo...

    Sinon on t'a déjà répondu, ce n'est pas une question d'en-tête : les en-tête concernent HTTP et non rien à voir avec le PHP.
    readfile n'interpretera jamais ton PHP ; la méthode la plus performante est include().
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Par défaut
    Apparemment il n'y a que include() et require() pour interpréter le PHP.
    Je pensais réduire le temps de chargement et la mémoire utilisée, mais bon pas possible.

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par bilobar
    J'ai testé include() et require() sur d'autres fichier que de type PHP, ça ne fonctionne plus à partir d'une certaines taille ex image jpg > 8ko.
    Mais... faire un include() d'une image n'a aucun sens...
    Pourquoi cherches-tu à détourner les instruction de ce qu'elles sont sensées faire ?

    Bon je vai réessayer en mettant le header() dans le fichier php, me semble avoir déjà fait ça.
    Mais RunCodePhp t'a déjà expliqué pourquoi ça ne sert à rien !
    Que tu fasses un include() ou un readfile(), PHP ne va pas faire de requête HTTP pour récupérer le fichier, donc tes header(), ils risquent pas de servir à grand chose...

    Désolé si je suis un peu direct, mais avant de vouloir "optimiser" les performances, tu ferais mieux d'optimiser tes connaissances !
    Une simple lecture de la doc sur include et readfile te permettraient de mieux comprendre qui sert à quoi...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [PHP 5.0] Afficher du code XML comme une page PHP
    Par keaton7 dans le forum Langage
    Réponses: 4
    Dernier message: 02/03/2009, 17h07
  2. [PHP-JS] Afficher du code PHP
    Par julien.63 dans le forum Langage
    Réponses: 11
    Dernier message: 01/02/2007, 16h48
  3. [Mail] Les codes PHP ne s'executent pas
    Par Rajhonson dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2006, 14h40
  4. [EasyPHP] Local web n'affiche pas la page index.php
    Par pierrot10 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 15/08/2006, 17h21
  5. [Sécurité] Afficher le code source PHP
    Par tigzirt dans le forum Langage
    Réponses: 2
    Dernier message: 12/05/2006, 09h42

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