如何在heredoc变量中插入php include?

时间:2010-09-16 19:09:34

标签: php

我需要在php heredoc变量中包含页面,但它不起作用请帮助我。

$content = <<<EOF
include 'links.php';
EOF;

5 个答案:

答案 0 :(得分:14)

你可以这样做:

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

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

答案 1 :(得分:2)

简单:你不能这样做。您可以事先包含该文件,将其存储在变量中,然后将其插入到文件中。例如:

$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;

答案 2 :(得分:1)

你不工作是什么意思?因为'links.php'的内容不在$ content中?如果那就是你想要的尝试使用输出流重定向(或只是读取文件)。

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

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

答案 3 :(得分:1)

根本不要使用heredoc 如果你需要输出你的内容 - 只需按原样输出,而不将其存储在变量中 输出缓冲的使用非常有限,我相信这不是这种情况。

只需准备好数据,然后使用纯HTML和PHP输出即可 让你的网页像这样(从最近的另一个答案):

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*/?>

答案 4 :(得分:0)

Heredoc语法仅用于处理文本。你不能在其中包含文件或执行php方法。


资源: