发新话题
打印

php编写的输出语句中无法实现换行

php编写的输出语句中无法实现换行

在php输出语句中无法实现换行, 也就是说换行符\n不起作用,望高手指教是否需要在配置文件中作改变.我的系统是:
FREEBSD 4.7 APACHE PHP4.3.0 MYSQL 系统运行正常, 能够显示php页面,也能连接数据库,但是在输出中无法实现换行.
比如:
<?
for($i=0;$i<=10;$i++)
{
echo"This my first PHP.\n";
}
?>
原意是一共输出十行This my first PHP. 可结果是输出一行十句,真不明白是怎么回事请高手指点.
再次谢谢了      

TOP

你需要的那种意义的换行?
<BR> 吗 还是 \n ?      

TOP

<?
for($i=0;$i<=10;$i++)
{
echo"This my first PHP.\n";
}
?>      

TOP

在最前面加上:
[PHP]header("Content-type: text/plain");[/PHP]      
自由是如此的诱惑 让我们魂牵梦绕 多少个不眠之夜 你我伴着linux度过

TOP

多谢tom_lee1999您的回贴,我由于本人是个新手实在不明白该放到什么位置, 以下边的代码为例:
PHP:
header("Content-type: text/plain");
<html>
<head>
<body>
<?php
for($i=0;$i<10;$i++){
echo"thank you.\n";
?>
</body>
</head>
</html>
按常规输出结果是十句thank you.分十行输出, 但实际结果是排在了一行. 再次烦请您指点.多谢!      

TOP

对不起,我没说清楚,正确的代码如下:
<?
header("Content-type: text/plain\n\n");
for($i=0;$i<=10;$i++)
{
echo"This my first PHP.\n";
}
?>      
自由是如此的诱惑 让我们魂牵梦绕 多少个不眠之夜 你我伴着linux度过

TOP

多谢tom-lee1999的指点,按照您的方法已经实现了换行功能万分感谢,但是我在使用中却发现这种方法引发出了新的问题。 以实例说明
<?
header("Content-type: text/plain\n\n");
for($i=0;$i<=10;$i++)
{
echo"This my first PHP.\n";
}
?>
这个例子采用您的方法可以换行,因为这是一个纯PHP代码的页面如果在页面中含有
html的成份那结果就会显示出错信息并失去了换行功能比如
<html>
<body>
<?
header("Content-type: text/plain\n\n");
for($i=0;$i<=10;$i++)
{
echo"This my first PHP.\n";
}
?>
<br>
aaa
<br>
bbb
<br>
ccc
</body>
</html>

从常理上讲上边的代码是没有错的但结果却出人意外,下边是结果:
------------------------------------------------------------


Warning: Cannot add header information - headers already sent by (output started at /web/aaa.php:3) in /web/aaa.php on line 4
This my first PHP. This my first PHP. This my first PHP. This my first PHP. This my first PHP. This my first PHP. This my first PHP. This my first PHP. This my first PHP. This my first PHP. This my first PHP.
aaa
bbb
ccc

---------------------------------------------------------------------
我原以为是我的PHP有问题,为此我换了别的版本重新进行了安装,问题依然如故。不仅如此,我在另一台机器上的LINUX7.3中安装后,也是出同样的问题。看来不是php本身的问题,那问题出在哪呢?唯一的可能就是apache服务器有问题。因为这两台机器上的apache是用的同一个版本的不同的下载包(apache_1.3.27),因为我暂时找不到别的版本的apache用来试验,为此我已经不知装了多少遍了。这就是本人遇到的实际恳请您以您的知识、经验及阅历为本人指点迷津再次致谢。      

TOP

老弟,别客气,互相学习吗!
这个问题其实是关于HTTP header。详见:http://www.w3.org/Protocols/rfc2616/rfc2616  
HTTP header是web服务器告诉浏览器将怎样处理即将发来的html,必须在所有html内容之前,所以叫头 (header)。我简单的说一下 "Content-type: "  是指定内容类型:如果是"Content-type:text/html\n\n",浏览器以超文本(html)格式浏览;如果是"Content-type: text/plain\n\n",浏览器以纯文本(text)格式浏览;如果是其它,一般就下载。注意:php 生成的动态页面默认"Content-type:text/html\n\n"。
php 的 header  函数就是输出HTTP header。关于 header  函数的详细说明可以在  www.php.net   查找。
所以,以纯文本(text)格式浏览时,可以用"\n"换行;以超文本(html)格式浏览时,可以用"<br>"换行。
你要使用超文本(html)格式,代码为:
<html>
<head>
<body>
<?php
for($i=0;$i<10;$i++){
echo"thank you.<br>";         //用"<br>"换行
?>
</body>
</head>
</html>      
自由是如此的诱惑 让我们魂牵梦绕 多少个不眠之夜 你我伴着linux度过

TOP

非常感谢!
    经此一事更加感到自己所学太少、基础不扎实、知识不系统,真是学海无涯。
    再次感谢您的热情和真诚。
    不过有一点或许要纠正的,学业您为长,为长即为师;年龄上恐怕......,不过,不论年长年少,你是我师这是毫无疑问的。
    今后还望不悯赐教。
    QQ:8033060
    E-mail:001636100@163.com      

TOP

[QUOTE]最初由 qpbvd 发布
[B]多谢tom-lee1999的指点,按照您的方法已经实现了换行功能万分感谢,但是我在使用中却发现这种方法引发出了新的问题。 以实例说明
<?
header("Content-type: text/plain\n\n");
for($i=0;$i<=10;$i++)
{
echo"This my first PHP.\n";
}
?>
这个例子采用您的方法可以换行,因为这是一个纯PHP代码的页面如果在页面中含有
html的成份那结果就会显示出错信息并失去了换行功能比如
<html>
<body>
<?
header("Content-type: text/plain\n\n");
for($i=0;$i<=10;$i++)
{
echo"This my first PHP.\n";
}
?>
<br>

</body>
</html>

[/B][/QUOTE]


好象那要用在 开头吧!header("Content-type: text/plain\n\n");
用在 HTML 输出以前!      

TOP

发新话题