簡體   English   中英

不能echo php echo作為字符串

[英]Cant echo php echo as a string

我試圖在下面回聲。 純文本。

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

但是它不會正確地回顯。下面是代碼。以某種方式將回顯忽略為一個字符串,並且與字符串的其他大部分相同。

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

它只是返回src='

這行很奇怪:

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

我認為應該

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

這符合我的要求

<?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;
}
?>

輸出值

<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>

為避免PHP計算字符串,請不要使用"而是'

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

應該可以

請注意,如果您未將頁面設置為text/plain瀏覽器將在<?之后隱藏所有內容<? 由於< 您可能要使用&lt; 強制將其打印以用於調試目的。

根據一些評論,用戶似乎很想回顯包含PHP的字符串。

如果所需的輸出是:

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

將您的代碼更改為:

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

這將輸出:

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

大概其余的輸出(腳本名稱和腳本標簽)將由您的代碼添加。

您實際上是通過將<轉換為&lt;來轉義輸出的HTML不兼容部分&lt; >&gt;

如果您嘗試回顯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);

頁面輸出:

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

這是所有事物的示例:

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM