2016-09-20 174 views
0

我想在下面回顯。純文本。不能回顯作爲字符串的PHP回聲

<script src="<?php echo $config['dir_plugins']; ?>qroll.js"></script> 

,但它不會回聲correctly.below是code.somehow它省略了回波作爲一個字符串並與它最字符串的其他部分。

<?php 
$arr = array("qroll", "validate", "hellios"); 
$str2 = "src='<?php echo \$config[\'dir_plugins\']; "; 
foreach ($arr as &$value) { 
    echo $str2; 
    echo $value; 
} 
?> 

它只是返回src='

+0

你在哪裏定義'$ config' – RiggsFolly

+0

@RiggsFollyi定義它在一個單獨的文件中。但我想以字符串的形式回顯它。不是一個變量。使用\多數民衆贊成爲什麼在美元符號 –

+0

但你沒有包括其他文件,至少不是在你給我們的代碼。我們只能調試我們看到**我們不是千里眼** – RiggsFolly

回答

0

接下來從一些評論看來,用戶實際上想要回顯一個包含一些PHP的字符串。

如果期望的輸出是:

src='<?php echo $config['dir_plugins']; ?> 

你的代碼更改爲:

$str2 = "src='&lt;?php echo \$config['dir_plugins']; ?&gt;"; 

這將輸出:

src='<?php echo $config['dir_plugins']; ?> 

想必輸出的剩餘部分(腳本名稱和腳本標籤)將被您的代碼添加。

你實際上是通過轉換<&lt;>&gt;

+0

謝謝你的作品完美。謝謝XD –

1

此行是奇怪:

$str2 = "src='<?php echo \$config[\'dir_plugins\']; "; 

我覺得應該是

$str2 = "src='".$config[\'dir_plugins\']."'"; 
+0

是的,我知道你可以去除回聲和呼叫$配置。但我不希望出現這種情況。純文本 –

+0

而反斜槓應該是正斜槓 – RiggsFolly

+0

'$ config [...]'裏面不需要任何斜線,因爲你不需要用你的解決方案。 –

0

爲了避免PHP評估一個字符串,不要使用"但是'

$str2 = 'src=\'<?php echo $config[\'dir_plugins\']; '; 

應該做的伎倆

請注意,如果你沒有設置網頁爲text/plain您的瀏覽器將隱藏,因爲<<?後的一切。您可能想要使用&lt;強制打印它以用於調試目的。

+0

這給了我剛纔的src =」出於某種原因 –

+1

其實你呼應的一切,但你的瀏覽器隱藏,因爲'<'(看起來像網頁的源代碼) –

+0

噓耶士的數據。謝謝。 –

1

這做什麼,我覺得你所要求的

<?php 
$arr = array("qroll", "validate", "hellios"); 
$str2 = '<script src="<?php echo $config[\'dir_plugins\']; ?>"'; 
foreach ($arr as &$value) { 
    echo $str2 . $value . '.js></script>'; 
    //echo PHP_EOL; 
} 
?> 

輸出

逃脫你的輸出的HTML不兼容的部分
<script src="<?php echo $config['dir_plugins']; ?>"qroll.js></script> 
<script src="<?php echo $config['dir_plugins']; ?>"validate.js></script> 
<script src="<?php echo $config['dir_plugins']; ?>"hellios.js></script> 
+0

的解釋。我的錯誤我沒有考慮到html標籤。謝謝 –

0

如果您試圖回顯HTML代碼以便在您的頁面上顯示,您可以隨時嘗試htmlspecialchars,它將爲您轉換<&lt;>&gt;

<?php 
$arr = array("qroll", "validate", "hellios"); 
$str2 = "src='<?php echo \$config[\'dir_plugins\']; "; 
foreach ($arr as &$value) { 
    echo htmlspecialchars($str2); 
    echo $value; 
} 

輸出在源:

src='&lt;?php echo $config[\'dir_plugins\']; qrollsrc='&lt;?php echo $config[\'dir_plugins\']; validatesrc='&lt;?php echo $config[\'dir_plugins\']; hellios 

頁上的輸出:

src='<?php echo $config[\'dir_plugins\']; qrollsrc='<?php echo $config[\'dir_plugins\']; validatesrc='<?php echo $config[\'dir_plugins\']; hellios 

<?php 
$str2 = 'src=\'<?php echo $config[\'dir_plugins\']; ?>\''; 
echo htmlspecialchars($str2); 

輸出頁面上


這裏是一切的在一起的例子:

<pre> 
<?php 
$arr = array('qroll', 'validate', 'hellios'); 
$str2 = '<script src=\'<?php echo $config[\'dir_plugins\']; ?>'; 
$str3 = '.js\'></script>'; 
foreach ($arr as $value) { 
    echo htmlspecialchars($str2), $value, htmlspecialchars($str3), "\n"; 
} 
?> 
</pre> 

這看起來就像這樣您的網頁上:

<script src='<?php echo $config['dir_plugins']; ?>qroll.js'></script> 
<script src='<?php echo $config['dir_plugins']; ?>validate.js'></script> 
<script src='<?php echo $config['dir_plugins']; ?>hellios.js'></script>