Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fread/file sur un fichier php

17 réponses
Avatar
Almaleh
Bonjour,
Je souhaiterai par une fonction de type fread, file... lire un fichier
php *après exécution* du code. Est-ce possible ? J'ai des fichiers .php
à l'intérieur desquels il y a du html, et la fonction eval ne marche
pas dans ce cas.
Une idée ?
merci
Francois A.

--
Francois A.
_________

Excellent newsreader : http://www.mesnews.net

10 réponses

1 2
Avatar
Olivier Miakinen

Je souhaiterai par une fonction de type fread, file... lire un fichier
php *après exécution* du code. Est-ce possible ?


Non. Voir <http://faqfclphp.free.fr/#rub2.3>.

J'ai des fichiers .php à l'intérieur desquels il y a du html, et la
fonction eval ne marche pas dans ce cas.


Si vraiment tu ne peux pas faire autrement, va voir du côté de
JavaScript et XMLHttpRequest.

Francois A.


Au passage, puisque ton « excellent newsreader » inclut déjà la
signature, il est inutile de la mettre une seconde fois. ;-)

Cordialement
--
Olivier Miakinen

Avatar
Jahjah92
avec ça :
ob_start();
include("monfichier.php");
$buffer = ob_get_flush();

=> buffer contient la sortie interpretée du fichier php.
A+

"Almaleh" a écrit dans le message de news:

Bonjour,
Je souhaiterai par une fonction de type fread, file... lire un fichier php
*après exécution* du code. Est-ce possible ? J'ai des fichiers .php à
l'intérieur desquels il y a du html, et la fonction eval ne marche pas
dans ce cas.
Une idée ?
merci
Francois A.

--
Francois A.
_________

Excellent newsreader : http://www.mesnews.net


Avatar
Olivier Miakinen
avec ça :
ob_start();
include("monfichier.php");
$buffer = ob_get_flush();

=> buffer contient la sortie interpretée du fichier php.


Ah ? Si c'est ça la réponse, alors c'est que je n'avais pas compris la
question. :-/

Avatar
Calimero
Olivier Miakinen wrote:

avec ça :
ob_start();
include("monfichier.php");
$buffer = ob_get_flush();

=> buffer contient la sortie interpretée du fichier php.



Ah ? Si c'est ça la réponse, alors c'est que je n'avais pas compris la
question. :-/


T'es vraiment tatillon Olivier: il te faut des demandes à peu près
claires pour pouvoir y répondre. ;-)

--
@+
Calimero, qui n'a plus de piles dans sa boule de cristal.


Avatar
Vincent Lascaux
avec ça :
ob_start();
include("monfichier.php");
$buffer = ob_get_flush();

=> buffer contient la sortie interpretée du fichier php.


Attention cependant... Le truc dangereux c'est que le comportement differe
si on l'appelle depuis une fonction ou non. Exemple avec monfichier.php qui
contient <?php $a = 2; ?>

<?php
$a = 1

ob_start();
include("monfichier.php");
$buffer = ob_get_flush();

echo $a;
?>

Ca affiche 2 (et non pas 1)

<?php

$a = 1;

function getOutput() {
ob_start();
include("monfichier.php");
return ob_get_flush();
}
$buffer = getOutput();

echo $a;
?>

Ca affiche 1;

Comme ca, ca a l'air con, mais si tes scripts font des accès à des variables
globales (connection à une base de donnée...) je ferais super gaffe.

--
Vincent

Avatar
Almaleh
Jahjah92 a exprimé avec précision :
avec ça :
ob_start();
include("monfichier.php");
$buffer = ob_get_flush();

=> buffer contient la sortie interpretée du fichier php.
A+


Merci.
Cependant, include a l'inconvenient d'interpréter le fichier php...
ce qui ne m'arrange pas. On peut éviter ce probleme ??

merci
Francois

Avatar
Almaleh
Merci.
Cependant, include a l'inconvenient d'interpréter le fichier php...
ce qui ne m'arrange pas. On peut éviter ce probleme ??

merci
Francois


... je me réponds : j'ai fait un <iframe height=0 width=0> puis
ob_start(), include(page.php) puis $contenu=strip_tags(ob_get_flush())

Ca fait un peu bricolage, mais ca marche (la page php ne s'affiche
pas), et c'est transparent pour l'utilisateur final (... sauf s'il est
curieux et veut voir la source de la page qui sera plus longue...)

Francois

Avatar
Olivier Miakinen

ob_start();
include("monfichier.php");
$buffer = ob_get_flush();

=> buffer contient la sortie interpretée du fichier php.


Cependant, include a l'inconvenient d'interpréter le fichier php...
ce qui ne m'arrange pas. On peut éviter ce probleme ??


Oui, avec readfile(), voire avec file_get_contents() qui t'évite d'avoir
besoin de ob_start() et ob_get_flush().


Avatar
Calimero
Almaleh wrote:
Cependant, include a l'inconvenient d'interpréter le fichier php...
ce qui ne m'arrange pas. On peut éviter ce probleme ??


... je me réponds : j'ai fait un <iframe height=0 width=0> puis
ob_start(), include(page.php) puis $contenu=strip_tags(ob_get_flush())

Ca fait un peu bricolage, mais ca marche (la page php ne s'affiche pas),
et c'est transparent pour l'utilisateur final (... sauf s'il est curieux
et veut voir la source de la page qui sera plus longue...)


Je suis le seul à pas avoir compris en 5-10 posts ce qu'Almaleh
cherche à faire ?

--
@+
Calimero, polio


Avatar
Olivier Miakinen

Je suis le seul à pas avoir compris en 5-10 posts ce qu'Almaleh
cherche à faire ?


T'es vraiment tatillon, Caliméro : il te faut comprendre les demandes
pour y répondre. ;-)

1 2