<? ?> in php Variable schreiben

sebastianv

Mitglied
Habe folgendes Problem:
Ich möchte mittels php eine neue php Seite generieren und auf dem Server speichern.
Hierzu schreibe ich den Text der in die Datei geschrieben werden soll vorher in eine Variable. Allerdings gibt es hier scheinbar Probleme beim schreiben der <? ?> zeichen.

Dies ist mein Code:
PHP:
$filename = "$seitenname.php";
			$Pageinhalt = "<html><head><title>$seitenname</title><link rel='stylesheet' type='text/css' href='style.css'></head><body>
			<? php include('http://' . $_SERVER['SERVER_NAME'] . '/phpbeans/cms2.php?ID=$pageida'); ?>  
			</body></html>";

			
			$Datei = fopen("$filename", "w");

			fwrite($Datei, $Pageinhalt);
			
			fclose($Datei);

Bekomme folgende Fehlermeldung:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in on line 43
 
Zuletzt bearbeitet:
Hi,
welche ist die Zeile 43?

Naja, versuch mal das:
HTML:
$Pageinhalt = "<html><head><title>$seitenname</title><link rel='stylesheet' type='text/css' href='style.css'></head><body>
			\<\? php include('http://' . $_SERVER['SERVER_NAME'] . '/phpbeans/cms2.php?ID=$pageida'); \?\>  
			</body></html>";
 
Zuletzt bearbeitet:
HTML:
$Pageinhalt = "<html><head><title>$seitenname</title><link rel='stylesheet' type='text/css' href='style.css'></head><body> 
            <? php include('http://' ". $_SERVER['SERVER_NAME'] ." '/phpbeans/cms2.php?ID=$pageida'); ?>   
            </body></html>";
 
Die Zeile 43 ist die die mit <? anfängt
PHP:
<? php include('http://' . $_SERVER['SERVER_NAME'] . '/phpbeans/cms2.php?ID=$pageida'); ?>

Funktioniert mit den \ auch nicht! leigts evtl. auch an ner anderen stelle
 
Mit der Version von xCondoRx funktioniert es soweit, allerdings soll die Variable nicht ausgegeben werden, sondern so in die datei geschrieben werden! D.h. es soll in der Datei genau so stehen wie es hier auch angezeigt wird.
 
Dann probiers mal so:
HTML:
$Pageinhalt = "<html><head><title>$seitenname</title><link rel='stylesheet' type='text/css' href='style.css'></head><body> 
            <? php include('http://' . \$_SERVER['SERVER_NAME'] . '/phpbeans/cms2.php?ID='.\$pageida); ?>   
            </body></html>";
 
Zuletzt bearbeitet:
Wichtig ist, dass der entsprechende PHP- Text nicht vom Interpreter umgewandelt wird. Das erreichst du nur, in dem du dem Interpreter vedeutlichst, dass "nichts an PHP- COde, also nichts zu interpretieren", innerhalb der entsprechenden Variable vorkommt. Speziell macht man das mit Singlequotes.

PHP:
<?php
$Pageinhalt = '<html><head><title>$seitenname</title><link rel=\'stylesheet\' type=\'text/css\' href=\'style.css\'></head><body> 
            <? php include(\'http://\' . $_SERVER[\'SERVER_NAME\'] . \'/phpbeans/cms2.php?ID=\'.$pageida); ?>   
            </body></html>';  
?>

Wenn du das auf diese Weise bewerkstelligst, musst du drauf achten, dass vor alle anderen folgenden Singlequotes ein Backslash kommt, siehe Codeschnipsel.

Ebenfalls wäre mal noch interessant zu wissen, um dir ein wirklich korrektes Codeschipsle zu zeigen, welche Variablen beim Schreiben der Datei ausgeführt werden sollen und welche Variablen erst beim Ausführen der geschriebenen Datei verwendet werden sollen.
 
Zuletzt bearbeitet:
Zurück