PHP字符串echo行为怪异


php string echo behaving weirdly

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

<?php 
function aa() { 
  return "<w";
}
$r = aa();
echo $r;    
?>

不管我使用什么样的引号。如果我打印任何不以&lt开头的字符串;后面跟着一个正确打印的字符。可能是php。ini,但是,有什么想法吗??

你可以试试:

 <?php 
function aa() { 
  return htmlspecialchars("<w");
}
$r = aa();
echo $r;    
?>

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

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

这是因为PHP文件生成的网页是这样的:

<w

如果你在test.html文件中输入这个并在浏览器中打开它,你也不会看到字符串<w。这是因为web浏览器的HTML编译器将左括号<解释为HTML标记。它不能理解这个标签,因此什么也不打印。如果您想打印这样一个括号,请使用HTML编码:

&lt;