PHP文件处理

232 阅读1分钟

                                                                PHP文件处理

1、去除文件中的所有空行
//步骤:读取文件内容 => [换行]分割字符串为数组 => 去除为空的数组元素 => 数组连接为字符串 => 写进文件
public function removeEmptyLineAction(){
$str = file_get_contents(APP_PATH.'/data/css.txt');
$strArr = explode(PHP_EOL, $str);    //php 换行 PHP_EOL变量:这个变量会根据平台而变,在windows下会是/r/n,在linux下是/n,在mac下是/r
$strArr = array_filter($strArr);
$str = implode(PHP_EOL,$strArr);
file_put_contents(APP_PATH.'/data/css2.txt',$str);
}

[处理前]:
Hello

World

...
[处理后]:
Hello
World
...

2、把文件中的所有行都合成一行
public function toALineAction(){
$str = file_get_contents(APP_PATH.'/data/css.txt');

//三种替换方式,任选一种
$str = str_replace( ["\r","\n","\r\n"],"",$str ); //对数组中每个字符串进行替换
$str = preg_replace('/\s/', '', $str);    //正则替换
$str = str_replace(PHP_EOL, '', $str);    //PHP预定义变量PHP_EOL替换

file_put_contents(APP_PATH.'/data/css11.txt',$str);
}
[处理前]:
Hello

World

...
[处理后]:
HelloWorld...

3、去除文件每行左边的阿拉伯数字
//步骤:读取文件内容 => [换行]分割字符串为数组 => 去除为空的数组元素 => 循环数组,从[、位置+1]开始截取字符串,数组内容重置 => 数组连接为字符串 => 写进文件
public function removeNumberAction(){
$str = file_get_contents(APP_PATH.'/data/css3.txt');
$strArr = explode(PHP_EOL, $str);    //php 换行 PHP_EOL变量:这个变量会根据平台而变,在windows下会是/r/n,在linux下是/n,在mac下是/r
$strArr = array_filter($strArr);
foreach ($strArr as $k => $v){
//考虑到中文字符串的截取,使用mb_substr;strpos:字符在字符串第一次出现的位置 strpos:字符在字符串最后一次出现的位置
$strArr[$k] = mb_substr( $v, (strpos($v, '、')+1) );    
}
$str = implode(PHP_EOL,$strArr);
file_put_contents(APP_PATH.'/data/css4.txt',$str);
}
[处理前]:
1、Hello

2、World

3、你好

4、世界

...
[处理后]:
Hello
World
你好
世界
...

#对文件内容的处理就是PHP对字符串的处理。
# PHP str_replace() 函数详解
# PHP substr(),mb_substr(),mb_strcut()比较
\