|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 & `* V' x5 U- u* P! u# x0 u* x
' I$ P/ [2 ^/ J7 S
花了几分钟帮你写了下
% E; w) j( J& @; n* g. W3 ]4 R2 m例如源文件为这个txt
* d7 s4 r, o) A5 @ p5 {5 m➜ ~ cat x.txt3 ]; d8 R8 @, m) o# z+ O
hitest3 O, _6 X# g/ |2 {& o
[email protected]" _6 e! G4 g N X. J
hi [email protected] test
* X& u0 v% z0 Q+ m' G( ~[email protected] [email protected]
! J2 y3 U0 K! @9 a执行后,得到result.txt
. S1 X: _4 I( _; B) n% I➜ ~ cat result.txt
9 x7 b$ Y7 I9 [, p, ?& }: L[email protected]
. T1 q- r% S3 i" i; B. f$ x[email protected]
7 M/ F( X, e s7 Y% D[email protected]8 f9 D- u+ N' \, n" T3 W0 L* n
[email protected]
8 z3 b: C; U6 l* o- N; m3 V
6 p1 h" h' S' }代码如下:1 K* o, s a B
- <?php* ?% Q t6 O6 p- H4 ?
- $file = 'x.txt';
! Z: o8 z+ _) Y" ^ ~: c - $fp = fopen($file, 'r');& W; C* S. f$ a9 M1 M
- if (!$fp) {3 z+ T: f9 P. s- q
- exit('failed to open'.$file);
" R0 p9 n! P8 T - }
$ v8 A( k& i3 t; }* t - $lineNumber = 0;7 `1 U+ j# i0 v! |5 |/ a
- while($line = fgets($fp)) {3 K% x9 n" o1 _/ S) H0 ]& M
- $lineNumber++;0 F/ W/ P( n/ Y
- $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';3 z) H6 J* H, F) P
- preg_match_all($pattern, $line, $matches);" K( j+ Z# F B+ ~! }
- if (!empty($matches[0])) {- A% S) I& a# |
- foreach ($matches[0] as $mail) {7 a# g* x/ U c# U3 t8 O6 x. _
- echo $mail.' found from line '.$lineNumber.PHP_EOL;
0 W' ~% Y/ c1 Y/ c5 e - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);6 h1 C8 L2 O- o: B; q
- }
; y; G# U( \0 _ P" a& q9 D$ w - }# b7 y' L' \ W1 K
- }
: l. `) `( ?% a2 n; O+ N& N3 M - echo "All Done";$ n% ?' [$ W/ s# i
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重$ T) W! `$ q% d* `8 ?
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|