php 如何去除回车换行符

php 如何去除回车换行符,第1张

php 去除回车换行符有三种方案:

<?php   

//php 不同系统的换行  

//不同系统之间换行的实现是不一样的  

//linux 与unix中用 \n  

//MAC 用 \r  

//window 为了体现与linux不同 则是 \r\n  

//所以在不同平台上 实现方法就不一样  

//php 有三种方法来解决  

//1、使用str_replace 来替换换行  

$str = str_replace(array("\r\n", "\r", "\n"), "", $str)   

//2、使用正则替换  

$str = preg_replace('//s*/', '', $str)  

//3、使用php定义好的变量 (建议使用)  

$str = str_replace(PHP_EOL, '', $str)   

?>

整个思路就是错的,我给你理清一下,你看哪个方便啊。

你现在的做法:

提交数据,用STR_REPLACE转换,然后保存,显示时可以直接显示,但需要再编辑时又要用STR_REPLACE转换过来,你累不累啊。

其实只用转换一次就行了。

就是:提交保存时,直接保存无需转换,编辑时直接编辑无需转换,实际上就跟本不用转换嘛,只用在显示的地方转换一次就行了。你说呢?这样做还有个好处就是可以保存数据库的原始值不动,像你那转样转换来转换去,里面数据早乱了。

修改和删除指定行,我们一般用file将文件内容读取到数组中,根据数字索引比较容易修改,但是你要求用文件指针,这个比较麻烦,不管你用的是filesystem的函数还是spl类函数,都不可避免一个问题,对一个文件流 *** 作,最多替换流中间的某一段内容,不可能实现插入,又不是c语言的链表,

//修改第二行内容

$f = fopen('test.txt', 'r+')

    $i = 1 

    while (!feof($f)) {

        if ($i == 2) {

            fseek($f, 0, SEEK_CUR)

            fwrite($f, 'aad')//这里的修改是替换形式,如果修改后这一行的长度比原来短,那么可以用空格填充到原来长度,这样实现修改,而且不影响后面的内容,但是修改后的比原来长就麻烦了,

            break 

        }

        fgets($f)

        $i++

    }

    fclose($f)

//删除行同修改行一样,只不过是将原来行替换为同等长度的空格串

$f = fopen('test.txt', 'r+')

    $j = 1

    while (!feof($f)) {

        if ($j == 2){

            $row = fgets($f)

            $len = strlen($row)

            echo ftell($f)-$len."<br>"

            fseek($f, ftell($f)-$len)

            fwrite($f, str_pad(' ', $len, ' '))

            break

        }

        fgets($f)

        $j++

    }

    fclose($f)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6686306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存