<body>
<?php 
echo "当前操作系统是:".PHP_OS."\n";
echo "当前PHP版本是:".PHP_VERSION."\n";
echo "当前PHP的文件名:"._FILE_."\n";
echo "当前的行号:"._LINE_."\n";

?></body>输出结果:1、为什么"_FILE_"和"_LINE_"两个常量的值没有输出来?
2、"\n"为什么没有识别?谢谢!

解决方案 »

  1.   


    第2个问题
    PHP中'和"是不一样的,在'中转义可能无效,你可以用"试试
    还有就是在网页中断行符是<br>,不是\n,用\n不能断行要实现断行可以用如下的语句
    <?php print('Hello tank<br> no one'); ?> 
    或<?php print("Hello tank<br> no one"); ?>
      

  2.   

    应该是__FILE__ 和 __LINE__(注意前后都是两条下划线)
      

  3.   

    你显示到的是HTML页面上,所以\N 无效,你试试写入到文本中\N就可以换行了
      

  4.   

    要PHP_EOL来代替\r\n以及\n,这个是跨平台的。
      

  5.   

    html的换行是 <br />,不是 \n
      

  6.   

    我知道html中<br />是换行,但是PHP教材里写的:用""定义字符串,可以识别更多的转义字符。
    里面就有\n啊。
    为什么在这里不能识别了?
      

  7.   

    我知道html中<br />是换行,但是PHP教材里写的:用""定义字符串,可以识别更多的转义字符。
    里面就有\n啊。
    为什么在这里不能识别了?
      

  8.   


    其实这里已经识别出来了'\n', 但是在html里面作为一个字符串输出时, 除非你用<pre></pre>标签括起来, 否则是不会保持字符串格式的。这样在html页面中显示时\n效果就没有了, 应该用<br/>来实现换行的效果。
      

  9.   

    额,关于第二个问题,\n是在文本文件中的换行。你可以打开输出页面的源代码,可以看到是有换行的。提供两种解决方案:
    1、用<br/>代替\n,这样就能在HTML页面中换行了。如果想批量替换字符串中的\n为<br/>,则可以使用nl2br()函数;
    2、使用<pre>标签,这个标签会显示出换行、空格等内容。如:
    echo "<pre>a\nb\tc</pre>";
    浏览器中的效果直接就是a换行b制表符c;此外,关于换行还有两个注意的地方:
    1、\n需要在双引号中使用,否则编译器会认识它是一个反斜杠和字母n;
    2、Windows系统中的换行是\r\n,Linux中是\n。你可以用PHP写入一个文本文件"abc\nabc",用记事本打开,会看到两个abc之间是一个方块,而不是换行。若要跨平台,可使用PHP_EOL常量。类似的常量有PATH_SEPARATOR、DIRECTORY_SEPARATOR等。