川北在线核心提示:原标题:揭秘PHP去除大文本重复行的方法 PHP处理大文本可能会出现各种性能问题,一种简单的方法是利用PHP自带的array_unique数组去重函数,另一种简单方法则为利用关联数组特性实现。下面是相关实现方法主要代码,仅供参考。 1. 利用PHP数组去重函数array_unique实现 P
原标题:揭秘PHP去除大文本重复行的方法
PHP处理大文本可能会出现各种性能问题,一种简单的方法是利用PHP自带的array_unique数组去重函数,另一种简单方法则为利用关联数组特性实现。下面是相关实现方法主要代码,仅供参考。
1. 利用PHP数组去重函数array_unique实现
PHP代码
1./*
2.文本重复字符串的去重 – 方法1
3.利用explode和array_unique函数实现。
4.存在问题:file_get_contents函数将文件全部读入内存处理,这样处理速度较快,但大文件会出现内存溢出问题
5.*/
6.function duplicate_remove_1($file_input, $file_output)
7.{
8. $content = file_get_contents($file_input);
9. if(!$content)
10. {
11. return 0;
12. }
13. //符号过滤与格式处理(处理为以逗号分割的字符串)
14. //$pattern = "/[ '.:;*?——!@#$%^&+=-)(<>{}]|]|[|/|\|"||/";
15. //$content = preg_replace($pattern, '', $content); //英文符号过滤
16. $array = explode(',', $content);
17. $new_array=array_values(array_unique($array));//消除重复行
18. $array = NULL;
19. $num = count($new_array) – 1;
20.
21. $content = implode("rn",$new_array);
22. $new_array = NULL;
23.
24. $content=preg_replace('/($s*$)|(^s*^)/m','',$content); //消除空行
25. $_bool = file_put_contents("{$file_output}",$content);
26. if(!$_bool)
{
return 0;
}
27. $content = NULL;
28.
29. return $num;
30.}
2. 利用PHP关联数组特性实现
PHP代码
1./*
2.文本重复字符串的去重 – 方法2
投稿合作邮箱:chuanbeiol@163.com 详情请访问川北在线:http://www.guangyuanol.cn