Comment exécuter et obtenir le contenu d'un .fichier php dans une variable?
Je veux obtenir le contenu d'un .fichier php dans une variable sur une autre page.
J'ai deux fichiers, myfile1.php
et myfile2.php
.
myfile2.php
<?PHP
$myvar="prashant"; //
echo $myvar;
?>
Maintenant, je veux obtenir la valeur de reprise par le myfile2.php dans une variable myfile1.php j'ai essayé les suivantes façon, mais sa prise tout le contenu, y compris balise php () aussi.
<?PHP
$root_var .= file_get_contents($_SERVER['DOCUMENT_ROOT']."/myfile2.php", true);
?>
S'il vous plaît dites-moi comment je peux obtenir le contenu renvoyé par un fichier PHP dans une variable définie dans un autre fichier PHP.
Grâce
Le non-accepté réponse ci-dessous est la meilleure: stackoverflow.com/a/851773/632951
TOUJOURS ÊTRE PRUDENT, parce que si vous allez utiliser
TOUJOURS ÊTRE PRUDENT, parce que si vous allez utiliser
ob_get_contents()
, alors vous pouvez avoir besoin de faire ob_end_flush
, otherwises vous pouvez avoir des problèmes, si vous utilisez utilisera php header
commande par la suite.OriginalL'auteur Prashant | 2009-05-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le inclure directive pour ce faire.
Fichier 2:
Fichier 1:
Et quel est votre problème avec cette méthode? Il est en retrait pour le faire.
En réalité, j'étais juste à la recherche qu'est-il un "retour" type de méthode qui peut directement me donner la valeur. De toute façon j'ai adopté @zombat la réponse de la méthode proposée par @harto peut avoir quelques problèmes de performance, et je peux pas faire de compromis sur les performances. Grâce guyz.
OriginalL'auteur zombat
Vous faut différencier deux choses:
echo
,print
,...) inclus dans le fichier et utiliser le résultat dans une variable (string)?Variables locales dans vos fichiers seront toujours déplacées à l'étendue actuelle de votre hôte script - cela doit être noté. Vous pouvez combiner toutes ces fonctionnalités en un seul:
include.php
host.php
La
return
-fonctionnalité est très pratique surtout lors de l'utilisation de fichiers de configuration.config.php
app.php
MODIFIER
Pour répondre à votre question à propos de la dégradation des performances lorsque vous utilisez les tampons de sortie, j'ai juste fait quelques tests rapides. 1 000 000 d'itérations de
ob_start()
et le correspondant$o = ob_get_clean()
prendre environ 7,5 secondes sur ma machine Windows (sans doute pas le meilleur environnement pour PHP). Je dirais que l'impact sur les performances devraient être considérés comme assez petites...OriginalL'auteur Stefan Gehrig
Si vous souhaitez uniquement le contenu
echo()
'ed par l'inclus de la page, vous pourriez envisager d'utiliser le tampon de sortie:Voir http://php.net/ob_start
Le tampon de sortie ajoute un petit gain de performance, car il est au-dessus de l'initialisation et le maintien de la mémoire.
Je n'ai pas toutes les données disponibles, mais je suppose que la performance serait négligeable. Vous pouvez essayer les deux méthodes et de voir si il y a une différence mesurable entre les deux, mais je pense qu'il serait très faible.
OriginalL'auteur harto
J'essaie toujours d'éviter
ob_
fonctions. Au lieu de cela, j'utilise:Merci pour le
eval("?>$file")
truc. C'est vraiment utile.OB_ fonctions de modifier le tampon de sortie, et de nombreux autres codes de la CMS pourrait être à l'aide de la mémoire tampon fonctions indpendently à l'époque, et qui peut entrer en conflit, ou nettoyer le tampon, ou de le modifier... Donc,je n'ai jamais le toucher.
Si la fonction eval() est la réponse, vous êtes presque certainement se poser la mauvaise question. -- Rasmus Lerdorf, BDFL de PHP
OriginalL'auteur T.Todua
"En réalité, j'étais juste à la recherche qu'est-il un type de retour de la méthode qui peut directement me donner la valeur" - Vous avez répondu à votre propre question.
Voir http://sg.php.net/manual/en/function.include.php, Exemple #5
file1.php:
file2.php:
Cela mérite plus de vues!
OriginalL'auteur Shanshui
Vous pouvez utiliser des tampons de sortie, qui permet de stocker tout ce dont vous avez sortie, et ne sera pas à l'imprimer, à moins que vous ne lui dites, ou n'a pas de fin/effacer la mémoire, à la fin du chemin d'exécution.
OriginalL'auteur Xenon
Si vous voulez obtenir tous les plus de l'utilisation du site par
OriginalL'auteur
S'il vous plaît essayez ce code
myfile1.php
myfile2.php
OriginalL'auteur Chinmay235
Si vous voulez retourner à la sortie de code dans un fichier, il suffit juste de faire une API RESTful de l'appel à elle. De cette façon, vous pouvez utiliser le même fichier de code pour les appels ajax, API REST, ou pour votre propre code PHP.
Il nécessite cURL à être installé, mais pas de tampons de sortie ou pas comprend, juste la page exécutée et renvoyé dans une chaîne.
Je vais vous donner le code que j'ai écrit. Il fonctionne avec presque tous les REPOS/serveur web (et fonctionne même avec Equifax):
ou
Voici la fonction:
OriginalL'auteur Jeff Williams