首页 新闻 会员 周边 捐助

PHP 正则处理 TXT文档特俗符号问题?preg_replace

0
悬赏园豆:20 [已关闭问题] 关闭于 2013-06-16 20:49
 1 <?php
 2 
 3     set_time_limit(0);
 4 
 5     //遍历 指定目录下的所有 文件/ $pattern是要匹配的 文件规则
 6     function file_list($dir,$pattern="")  
 7     {  
 8         $arr=array();  
 9         $dir_handle=opendir($dir);  
10         if($dir_handle)  
11         {  
12             // 这里必须严格比较,因为返回的文件名可能是“0”   
13             while(($file=readdir($dir_handle))!==false)  
14             {  
15                 if($file==='.' || $file==='..')  
16                 {  
17                     continue;  
18                 }  
19                 $tmp=realpath($dir.'/'.$file);  
20                 if(is_dir($tmp))  
21                 {  
22                     $retArr=file_list($tmp,$pattern);  
23                     if(!empty($retArr))  
24                     {  
25                         $arr[]=$retArr;  
26                     }  
27                 }  
28                 else  
29                 {  
30                     if($pattern==="" || preg_match($pattern,$tmp))  
31                     {  
32                         $arr[]=$tmp;  
33                     }  
34                 }  
35             }  
36             closedir($dir_handle);  
37         }  
38         return $arr;  
39     }
40 
41     $file_arr = file_list("E:/www/zendstudio-project/fanmulu/test/", "/^.*\.txt$/");
42 
43     $fopen2 = fopen('test.txt', 'a');//以追加方式打开一个待写入的文件
44 
45     for($i=0; $i<count($file_arr); $i++){
46     
47         $fopen1 = fopen($file_arr[$i], 'r');//以读的方式 依次 打开目录下所有文件
48         
49         while(!feof($fopen1)){
50     
51             $str = fgets($fopen1);
52             //将【】 [] 「」 ; ' " . 、 - ? ! 『』《》 %  ~ $ ※ () ()    : : 〖 # - × *  删除
53             //书 作者 章 节 正版 作品 内容  a-zA-Z0-9  整行删除
54             $pattern[0] = '/[【】\[\]「」;\'"\.、-?!『』《》%~$※()()::〖#-×*]/i';//此处代码多次测试 是错误的,哪位正则牛人可以指点下,不胜感激。
55             $pattern[1] = '/^(.*[书|作者|节|正版|作品|内容|a-zA-Z0-9].*)$/i';
56     
57             $str = preg_replace($pattern, '', $str);
58     
59             fwrite($fopen2, $str);
60         }
61         
62         fclose($fopen1);
63     }
64 
65     fclose($fopen2);
66 
67 ?>

1. 过滤TXT文档的符号,[【]】.;['!#$%等等符号。就是删除这么符号

2.删除包含“书”  “作者”等汉字的整行。这个要求貌似是正确的。

 

在写规则1的时候,实在闹,整不出来。 希望正则牛人可以帮助下。。。顺便可以推荐一份比较好的正则教程更好。不甚感激

群叔的主页 群叔 | 菜鸟二级 | 园豆:202
提问于:2013-06-16 20:04
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册