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