代码之家  ›  专栏  ›  技术社区  ›  Matthew Stopa

PHP:如何指定不希望对字符串求值?

  •  0
  • Matthew Stopa  · 技术社区  · 15 年前

    我在数据库中有一些php代码,就像这样

    $x = "<?php some code here ?>";
    

    但是我想将整行代码输出到浏览器,而不需要php对其进行评估。不幸的是,现在它正在评估它。我想逃离它,但没有成功。一个人如何才能做到这一点?

    编辑:

    <?php
    
    echo '<? hey ?>';
    echo "<dog dog>";
    
    ?>
    

    如果我运行该代码,dog-dog标记将显示在浏览器源代码中,其中 <? hey ?>

    编辑,得到答案,谢谢大家。

    7 回复  |  直到 15 年前
        1
  •  3
  •   Tyler Carter    15 年前

    “单引号”告诉PHP按原样插入字符串。它将完全按照原样包含所有空格和字符。

    “双引号”告诉PHP解析字符串。这减少了空白,替换了变量,并解析了任何其他神奇的字符串。

    最后,`backticks`用于shell命令。

    如果您正试图将其完全显示在浏览器中,则可能需要尝试 htmlentities($string)

        2
  •  4
  •   Alix Axel    15 年前

    只要做:

    echo htmlspecialchars($x);
    
        3
  •  3
  •   Skilldrick    15 年前

    你想让它看起来像那样吗?如果是这样,您需要使用 &lt; &gt; &书信电报; 是必需的)对字符串进行编码。

        4
  •  0
  •   Tyler Carter    15 年前

    使用“(单引号)而不是“(双引号)

        5
  •  0
  •   cletus    15 年前

    Ih PHP双引号计算表达式,单引号不计算表达式:

    $a = 123;
    $b = "value of $a"; // value of 123
    $c = 'value of $a'; // value of $a
    

    单引号的唯一问题是它们不理解像这样的字符 \n 对于换行符(将打印为 \n 在单引号中不是换行符)。

    这就是你所需要的:

    echo '<?php some code here ?>';
    

    ?

    Strings 在PHP手册中。

        6
  •  0
  •   Pekka    15 年前

    你对评估的内容有点不清楚。

    如果你在谈论变量,这里有很多正确的答案。

    <? ?> 布洛克,有点不对劲。那根绳子应该 如果在PHP块中(如果您指的是开始和结束PHP语句),则将对其进行计算。

    也许你错过了开头和结尾 <? ?>

        7
  •  0
  •   AndrewMurphy    15 年前

    如果你正在输出PHP代码,你甚至可以考虑使用 highlight_string