J'ai besoin d'inclure une page à l'intérieur de la variable php heredoc mais cela ne fonctionne pas s'il vous plaît aidez-moi.Comment insérer php include à l'intérieur de la variable heredoc?
$content = <<<EOF
include 'links.php';
EOF;
J'ai besoin d'inclure une page à l'intérieur de la variable php heredoc mais cela ne fonctionne pas s'il vous plaît aidez-moi.Comment insérer php include à l'intérieur de la variable heredoc?
$content = <<<EOF
include 'links.php';
EOF;
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;
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:
Vous pouvez faire de cette façon:
ob_start();
include 'links.php';
$include = ob_get_contents();
ob_end_clean();
$content = <<<EOF
{$include}
EOF;
Vous pourriez combiner' ob_get_contents' et 'ob_end_clean' à' ob_get_clean' :) – NikiC
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"; ?>
* 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
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*/?>
Cela va inclure la source de 'links.php', pas le contenu exécuté. – Rudu
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 Php' pour l'activer (cela commence dans un contexte sans code). 'eval' commence avec l'interpréteur activé (vous n'avez pas besoin de préfixer le code php avec' php' pour le faire fonctionner). Cela ne fonctionnera donc pas comme vous le souhaitez. Sans parler des autres maux de 'eval' ... Donc -1 pour ce qui revient à un mauvais conseil qui ne marchera pas ... – ircmaxell