【问题标题】:quotes not working in php引号在php中不起作用
【发布时间】:2016-02-18 19:06:37
【问题描述】:

我正在使用 php。此代码不起作用:

<?php
$str="<?palash";
print($str);

没有输出 但只要我在 之间引入一个空格,它就会起作用

<?php
$str="< ?palash";
print($str);// prints '< ?palash'

【问题讨论】:

  • 首先,您想在这里做什么?另外,它失败的原因还有一个“原因”。我只需要记住文档的位置。
  • 我希望动态地使用 php 本身创建一个 php 类,以便它可以存储我从数据库中获取的少量枚举。所以它必须有
  • 如果您重新加载您的第一段代码并查看您的 HTML 源代码,您实际上会看到&lt;?palash。它不会出现在您的屏幕上。所以使用htmlentities() 如下所述,如果这是你想要的。
  • 您的代码很可能遇到了一个安全限制,该限制阻止在服务器级别使用 php 编写 php(在堆栈上低于 PHP)。这样做确实没有合乎逻辑的理由,并且这样做可能会引发大约一百万个安全问题。只需将它们放在 JSON 或 .ini 文件中并以这种方式解析它们,不要为此动态编写 php,这是一个巨大的设计缺陷。

标签: php quotes


【解决方案1】:

您还可以通过在要转义的特殊字符 ? 之前使用反斜杠 \ 来转义特殊字符

这将满足您的要求

<?php
$str='<\?palash';
echo $str;
?>

干杯!

【讨论】:

  • 这个,或$str = "&lt;"."?palash";
【解决方案2】:

它不打印&lt;b?palash,因为它有特殊字符

如果你想打印带有特殊字符的字符串,那么你应该使用htmlentities函数:print htmlentities($str);

【讨论】:

    【解决方案3】:

    它确实有效,但您的网络浏览器将其解释为损坏的 HTML 标记,因此它不知道如何处理您的格式错误的 HTML。

    尝试按 Ctrl + U 查看源代码。

    试试这个:

    echo htmlentities("<?palash"); // produces &lt;?palash
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 2018-06-14
      • 2015-05-25
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多