|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑
8 j, t. z$ Z- L
* Z# K/ {5 P. W* n8 s花了几分钟帮你写了下 ; |0 R0 n K1 _5 {) k& l- F7 U
例如源文件为这个txt
& z: X/ G4 i6 Y➜ ~ cat x.txt
+ d. k2 H1 R" D1 W" P8 t6 E8 Q/ z3 ^hitest8 Y+ c$ N- j* ]- J6 |
[email protected]/ ^( n7 I8 r4 x0 \5 S3 Z
hi [email protected] test0 r7 C9 q. I" @( g4 T) Z% r9 }! Z
[email protected] [email protected]
, x) t9 Q8 @4 o$ i执行后,得到result.txt
5 I; T2 C' p% ~, e! X7 D➜ ~ cat result.txt * d0 t8 l# C( n) @
[email protected]/ v8 s" i- q: _
[email protected]
# X2 b/ j \- G[email protected]9 a/ r0 L# T2 |( }9 K* R
[email protected]! T9 C2 n$ e p$ J& H5 e
2 [1 m" x1 q! a+ e
代码如下:/ d* W+ {2 Q+ I* O/ C7 y
- <?php
8 R3 b# S) h0 Z - $file = 'x.txt';
; Y \3 P: G C1 q( T' l. p - $fp = fopen($file, 'r');( J. Q0 F/ b2 o& O/ W# d8 N6 s0 d
- if (!$fp) {* O0 M- _. f8 M* V& E; i
- exit('failed to open'.$file);) x. u1 ?6 g5 X* n- V( F5 f" A P6 b
- }+ }- B* ]& G, \9 I. ]% ^
- $lineNumber = 0;
* l& e( E+ R: H: h& ]" { - while($line = fgets($fp)) {! Z6 K% C7 i- `! Z* c; Q
- $lineNumber++;( T1 g- u4 N Y+ p
- $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';, s% [" M9 S# x7 ]5 j5 m
- preg_match_all($pattern, $line, $matches); c4 x. [' Q7 k. D& X/ @+ f: w: H
- if (!empty($matches[0])) {" J& @$ P/ v. ~4 e7 }& U
- foreach ($matches[0] as $mail) {
; A6 w) U ^9 e( O - echo $mail.' found from line '.$lineNumber.PHP_EOL;, u% M- r# S" N
- file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);& I/ v+ Y5 f2 d' o5 F
- }
" F! _. x- ~. m7 n8 B - }) l3 J K! w# k7 c) M
- }" L& Z% v/ @) a' J S- |5 P, I u
- echo "All Done";+ |& E0 Y/ i: R' I) V" s: _
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重
1 d% _) ?1 ]$ j. o3 S0 k6 ]) K使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|