PHP ausführen

SuperUser

Gesperrt
Hallo,

ich habe in einer Datei - content.ct - verschiedene Datensätze gespeichert, die ich über ein PHP-Script wahlweise ausgebe. (Soweit nichts Dramatisches.) Ein Datensatz könnte z.B. so aussehen:

Titel|:|<p>Wir wünschen Ihnen viel Spaß mit dieser Homepage</p>

Problematisch wird es jedoch, wenn der Datensatz selbst PHP-Code enthält. Solch ein Datensatz hätte vielleicht dieses Aussehen:

Datensatz mit PHP|:|<p>Wir wünschen Ihnen viel Spaß mit dem <?PHP echo "PHP-Content";?> auf dieser Seite</p>

Beim Anzeigen im Browser wird der PHP-Teil (natürlich) nicht dargestellt. Gibt's da eine Möglichkeit, dies zu ändern?

SuperUser
:)
 
Im Moment sind wir jedenfalls noch keine Freunde … ;)

PHP:
<?php
$str = '<p>Wir wünschen Ihnen viel Spaß mit dem 
<?PHP echo "PHP-Content";?> auf dieser Seite</p>';
echo $str;
eval ($str);
echo $str;
?>
macht "Parse error: parse error, unexpected '<' in c:\webdesign\4momo\demo\test.php(4) : eval()'d code on line 1".

Was ist da falsch?
 
Zuletzt bearbeitet:
bin zwar auch kein experte aber bei mir gehts so:

du öffenst 2 mal mit <?php ohne es zu schließen.

PHP:
<?
$str = '<p>Wir wünschen Ihnen viel Spaß mit dem ';
echo $str."<b>PHP-Content</b> auf dieser Seite</p>";
?>

<b> und </b> ist für fett und kann bei bedarf entfernt werden!!

ich hoffe es hilft dir.
 
So, habe es jetzt selbst ein Stück weit hinbekommen, was allerdings immer noch Probleme macht:

Folgendes script dazu:

PHP:
<?php
include "class.FastTemplate.php3";

$tpl = new FastTemplate(".");

$tpl->define(array(
"template" => "template.tpl"
));

if(!isset($_GET["id"])) $id = 0;
if(!isset($id)) $id = $_GET["id"];

$array1 = array();
$datei = fopen("inhalt/content.ct","r");
while (!feof($datei)) {
    $zeile = fgets($datei,1000);
    array_push($array1,$zeile); }
fclose($datei);

if(!$array1[$id])
{ $id = 0; }

$array = explode("|:|",$array1[$id]);
$titel = $array[0];
$inhalt = $array[1];

$inhalt = eval ("?>".$inhalt);

$tpl->assign("{title}", $titel);
$tpl->assign("{inhalt}", $inhalt);

$tpl->parse("ausgabe", "template");
$tpl->FastPrint("ausgabe");
?>

Allerdings gibt ^SCRIPT^ dann $inhalt nicht an dem Platzhalter {inhalt} aus, sondern vor allen Headern, also so:
Code:
<p>Wir wünschen Ihnen viel Spaß mit dem PHP-Content auf dieser Seite</p>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test1 </title>

Moritz
 
PHP:
<?php
$str = '<p>Wir wünschen Ihnen viel Spaß mit dem 
<?PHP echo "PHP-Content";?> auf dieser Seite</p>';
echo $str;
eval ("\$str2 = \"$str\";");
echo $str2;
?>
 
Zuletzt bearbeitet:
Zurück