|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 % K( z( Z+ _0 {9 z9 K$ D( i3 ?
Q+ W6 ?# @2 w( F5 i花了几分钟帮你写了下 - m- E& n. f" M+ m
例如源文件为这个txt, u9 P4 w" j$ |* A$ e3 ^
➜ ~ cat x.txt
7 `8 d% R3 B% s# e( Whitest, x3 h. h9 i" A, j- w
[email protected]$ C; v" R( i6 f1 @$ \0 `0 n' t
hi [email protected] test
5 m5 c/ i* l0 O3 A* x, f& a6 |[email protected] [email protected]
- ]$ h* {0 Y# w( y执行后,得到result.txt+ q5 ]3 E: V' I$ j3 j) g
➜ ~ cat result.txt - ~" I; W0 p- j+ p. ^
[email protected]
b# N6 M- e/ t" ~/ l1 E[email protected]9 X( a# s+ N7 Y' I) n0 d# _" ?
[email protected]: B! Q; p/ {& y2 b
[email protected]! D8 h* |5 O, ?+ n U9 r9 `
, d5 u [% b3 P) I+ F4 O代码如下:
& v7 \2 F% _* A- <?php0 @! G. y8 Z5 g2 @" t: e* i5 h( h
- $file = 'x.txt';& a9 @! S. f( W, W* {# p7 g7 ^
- $fp = fopen($file, 'r');( Q& H6 X- A& Q6 l4 u3 F7 [
- if (!$fp) {/ N+ w9 n0 P' P0 }0 S
- exit('failed to open'.$file);9 d% A6 R( I9 E2 r1 ]. _
- } g% f* G; o; V5 l6 l% I
- $lineNumber = 0;4 B. F5 q9 U) k" G- ?& k0 L- J
- while($line = fgets($fp)) {( l% K$ {$ D9 V ]) Z
- $lineNumber++;
$ m# ?' b V3 ]0 M& h - $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
( r0 A6 k, h3 X; k6 Z: `% G* `' L - preg_match_all($pattern, $line, $matches);
" C" M, e; J: S2 O6 F* G y - if (!empty($matches[0])) {
\1 \% {( V' M$ k. l3 V - foreach ($matches[0] as $mail) {
3 a& ^$ x" i! @1 y( { - echo $mail.' found from line '.$lineNumber.PHP_EOL;
$ H6 e$ c; [; G! y1 A2 A - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);2 `& w$ B+ t# }: A) t
- }, A% y/ q: v. u- j* [4 ? N# E5 x
- }1 H1 x3 Q( D, a' {' o
- }/ P6 ^6 s* s. b1 E, L, x
- echo "All Done";
1 Q4 p3 y% q7 @* g
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重
V( J! z1 h0 k- G3 H; z使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|