php字符串回显行为怪异

php字符串回显行为怪异,php,string,printing,echo,Php,String,Printing,Echo,以下内容未打印任何内容,我尚未在网上找到任何解释: <?php function aa() { return "<w"; } $r = aa(); echo $r; ?> 不管我用什么样的引语。如果我打印的字符串不是以

以下内容未打印任何内容,我尚未在网上找到任何解释:

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

$r = aa();

echo $r;    
?>

不管我用什么样的引语。如果我打印的字符串不是以<开头,后跟一个字符,那么它将正确打印。可能是php.ini上的内容,但有什么想法吗?

您可以尝试以下方法:

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

$r = aa();

echo $r;    
?>

在php.ini中短切\u open\u tag=On(打印html标记)/Off(不打印) 我希望它对你有用。 或者你也可以这样做

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

这是因为PHP文件生成的网页如下所示:

<w

你试过了吗“\只是查看生成的网页或源?第一印象是它是一个开放式HTML标记的开始,转义它只是输出转义字符。这就是全部,简化到这个简单的php,并在chrome中查看结果。因此,基本上是在localhost/print.php上查看文件,该文件只包含上面显示的代码,例如,在firefox thoughSo上发生的事情。如果我把回声改成“这同样有效,&rt/<,short_open_标签已设置为On,谢谢!不是真的!问题是从ajax加载调用开始的。为了加载某些元素,原始方法为选择框创建选项标记。避免调用这样的方法会显示整个页面,其中包含一个空的选择框,当检索结果时,输出将变为绝对空白。将方法的输出转换为类似“在什么情况下出现问题并不重要,原因仍然是一样的:如果不转义字符,就无法打印<个字符。句号。您接受的答案与我所说的完全相同:它通过使用函数htmlspecialchars()转义<)是的,我的答案是正确的。
&lt;