2012-12-14 45 views
1

我想回顯動態生成的代碼塊。例如:回聲php代碼爲文本

<?php 
$cid = $camp_id; 

$hostname = "$host"; 
$db_user = "$dbuser"; 
$db_pass = "$dbpass"; 
$db_name = "$dbname"; 

$mysqli = new mysqli(); 
$mysqli->connect($hostname, $db_user, $db_pass, $db_name); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: " . $mysqli->connect_error; 
} 

etc.... 
?> 

我有權訪問$ camp_id和其他變量,因爲它們位於包含的文件中。 我試圖將此代碼存儲在< pre>和<代碼>標記和回聲後,但無法使其工作。

另外我怎樣才能插入$ camp_id到這個。下面是例子我認爲(我知道這不只是爲了理解是否正確。

$generated_code = "<.code><?php $cid = <?php echo $camp_id;?> $hostname = $host; etc... </code > ?>"; 

我用空間和點代碼前,預先,因爲如果沒有它不顯示爲標籤..

感謝

+0

請減少你的問題。前兩條和最後一條線是否足以描述你的問題?你也可以通過這種方式更快地找出它。另見http://php.net/string – hakre

+0

這看起來像一個cludgy方法。也許對想要的結果進行更多解釋會更容易幫助? – Mattt

回答

1

你可以也嘗試這樣的:

<?php 
    ob_start(); 
?> 

    <code>$cid = <?php echo $camp_id; ?> , $hostname = <?php echo $host; ?></code> 

<?php 
    echo ob_get_clean(); 
?> 

根據不同的情況和你的代碼是什麼樣子,使用ob_start()和ob_get_clean()函數允許你的代碼是在顏色編碼的IDE更清晰,因爲你的輸出不會像一個固體塊的顏色,而不是它的樣式,它應該在html中更好的可讀性。

1

您需要按照規則strings in PHP,而旁邊的,你需要遵循HTML,或更好,輸出純文本的規則:

<?php 
header('Content-Type: text/plain;'); 

echo '<?php 
$cid = ' . $camp_id .'; 

etc.... 

?>';