最近在做个学校组织的简单网站,没有用sql,直接调用和生成txt文件的,结果发现PHP把文件打印到网页事英文引号“"”出现问题显示成\"。可能是和html里的关键字冲突了,不知道怎么解决!还有,通过网页上传PHP处理生成的TXT文件,我是转换成ansi文本的,然后调用打印到网页上供浏览,调用时我又转换成uif-8打印的,但为什么打开txt有换行和缩进空格,而在网页上打印出来却只有换行没有每段前面的两空格了呢?
分不多,求高手相助!

解决方案 »

  1.   

    对于1:PHP是不会自动将"转久成\"的,肯定是你用了什么函数处理过内容
    对于2:为了保证html能够正常显示,可以加上 <pre>html的串</pre>
      

  2.   

    谢谢,第二个问题空格是打印出来了,行距好大啊,我前面的<body style="line-height:150%">似乎对他没有用!还有第一个问题我是用
    $wb =  iconv("UTF-8","gb2312", 'txt');
     ……
    fwrite($handle,$wb);
    写进txt文件的,结果txt里面的"全变成\"了!
      

  3.   

    pre 标签 -- 可以把原文件中的空格,回车,换行,tab键表现出来 
    至于第二个,iconv也能负责转义,还真不知道.
      

  4.   

    pre 标签虽然把有好处,可是它的换行显示出来的行距能不能控制啊?怎么换行跟隔一行似的?行距也忒大了把?这样就不适用了!我打印出来好难看,行距太。大有没有办法控制?或者其它方法显示文字格式?第一个问题依然头大。拜托……
      

  5.   

    建议存进去的时候就对"等html标记进行处理读出来的时候就不会有问题的
      

  6.   

    自动加了\,显然你默认开着get_magic_quotes_gpc(),你可以检测一下:$content=get_magic_quotes_gpc()?$content:addslashes($content);去掉\,用stripslashes$content=stripslashes($content);
      

  7.   

    第二个就是用下转换就行了,也就是常见的UBBCODE将空格转换为HTML代码里的空格
    $content=$_POST['content'];
    $content=str_replace(' ','&nbsp;',$_POST['content']);//转换空格
    $content=nl2br($content);//转换回车
    echo $content;