2010-09-16 7 views

Répondre

2

Simple: vous ne pouvez pas le faire. Vous pouvez inclure le fichier à la main, le stocker dans une variable, puis l'insérer dans le fichier. Par exemple:

$links_contents = file_get_contents('links.php'); 
//$links_contents = eval($links_contents); // if you need to execute PHP inside of the file 
$content = <<<EOF 
{$links_contents} 
EOF; 
+3

Cela va inclure la source de 'links.php', pas le contenu exécuté. – Rudu

+0

Ne pas 'eval' après avoir exécuté' file_get_contents'. Cela ne fonctionnera pas comme vous l'attendez. La raison en est que 'include' (et donc le fichier' links.php') commence avec l'interpréteur PHP désactivé. C'est pourquoi vous avez besoin de ircmaxell

0

La syntaxe Heredoc est conçue pour gérer du texte uniquement. Vous ne pouvez pas inclure un fichier ou exécuter des méthodes php.


Ressources:

13

Vous pouvez faire de cette façon:

ob_start(); 
include 'links.php'; 
$include = ob_get_contents(); 
ob_end_clean(); 

$content = <<<EOF 
{$include} 
EOF; 
+3

Vous pourriez combiner' ob_get_contents' et 'ob_end_clean' à' ob_get_clean' :) – NikiC

1

Que voulez-vous dire par ne fonctionne pas? Comme dans le contenu de 'links.php' n'est pas dans le contenu $? Si c'est ce que vous voulez, essayez d'utiliser la redirection du flux de sortie (ou lisez simplement le fichier).

 
<?php 
ob_start(); 
include 'links.php'; 
$content = ob_get_contents(); 
ob_end_clean(); 

echo "contents=[$content]\n"; 
?> 
+1

* soupir * chaque fois que je réponds à une question sans réponse, il y a 3 ou 4 réponses avant que je puisse finir de taper. – troutinator

1

Ne pas utiliser Heredoc du tout.
si vous avez besoin de sortir votre contenu - juste le sortir tel quel, sans le stocker dans la variable.
Il peut y avoir une utilisation très limitée de la mise en tampon de sortie et je suis sûr que ce n'est pas le cas.

Préparez simplement vos données, puis publiez-les en HTML et en PHP.
faire vos pages comme celui-ci (à droite de l'autre réponse récente):

news.php:

<? 
include "config.php"; //connect to database HERE. 
$data = getdbdata("SELECT * FROM news where id = %d",$_GET['id']); 
$page_title = $data['title']; 
$body = nl2br($data['body']); 

$tpl_file = "tpl.news.php"; 
include "template.php"; 
?> 

template.php:

<html> 
<head> 
<title><?=$page_title?></title> 
</head> 
<body> 
<? include $tpl_file?> 
</body> 

tpl.news.php

<h1><?=$page_title?></h1> 
<?=$body?> 
<? include "links.php" /*include your links anywhere you wish*/?>