【问题标题】:php string echo behaving weirdlyphp字符串回显行为怪异
【发布时间】:2014-08-18 06:32:47
【问题描述】:

以下没有打印任何东西,我还没有在网上找到任何解释:

<?php 
function aa() { 
  return "<w";
}

$r = aa();

echo $r;    
?>

无论我使用哪种引号。如果我打印任何不以

【问题讨论】:

  • 你试过 "\
  • 只是查看生成的网页或来源?第一印象是它是一个开放式 HTML 标记的开始。
  • 转义它只是输出转义字符。这就是全部,精简到这个简单的 php 并在 chrome 中查看结果。所以基本上在 localhost/print.php 中查看文件,其中只有上面显示的代码
  • 同样的事情发生在 Firefox 上
  • 例如。如果我将 echo 更改为“

标签: php string printing echo


【解决方案1】:

你可以试试这个:

 <?php 
function aa() { 
  return htmlspecialchars("<w");
}

$r = aa();

echo $r;    
?>

【讨论】:

    【解决方案2】:

    在php.ini中做short_open_tag=On(打印html标签)/Off(不打印) 我希望它对你有用。 或者你可以这样做

        echo "&rt"; //for right arrow and &lt for left arrow
    

    【讨论】:

    • 这个也可以,&rt / &lt,short_open_tag 已经设置为 On,谢谢!
    【解决方案3】:

    发生这种情况是因为您的 PHP 文件生成的网页如下所示:

    <w
    

    如果您将其键入文件 test.html 并在网络浏览器中打开它,您也将无法看到字符串 &lt;w。这是因为网络浏览器的 HTML 编译器将左括号 &lt; 解释为 HTML 标记。它无法理解这个标签,因此什么也不打印。如果要打印这样的括号,请使用 HTML 编码:

    &lt;
    

    【讨论】:

    • 不是真的!问题是通过 ajax 加载调用以加载一些元素开始的,原始方法为选择框创建选项标签。避免调用此类方法会显示带有空选择框的整个页面,当检索 时,输出将变为绝对空白。将该方法的输出交换为“
    • 不管你的问题是在什么情况下出现的,原因还是一样的:你不能打印
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2021-09-07
    • 2012-07-18
    相关资源
    最近更新 更多