|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 # f5 F( m. {0 ]+ B' ]
( a) p8 Q7 Z# [" ^( V
花了几分钟帮你写了下 ! e% N+ z2 K: i3 W* Y \( Z9 F
例如源文件为这个txt
) n$ [$ e* M0 g; q; L2 U➜ ~ cat x.txt
l- b' M% }& b; c2 ^" W/ Rhitest
; q6 L, P4 p9 ^( f3 C, Z[email protected]9 Q8 _9 n. V" L3 `9 T5 l' ~
hi [email protected] test
0 x) D- D* t. x2 y5 s# `7 K[email protected] [email protected]
* ?9 m8 O C. x. c$ k# A- Y执行后,得到result.txt. I T: }. ^8 n
➜ ~ cat result.txt 8 G/ x, D$ R7 i) j3 g4 e
[email protected]8 z# b/ `, U7 x8 P2 ~
[email protected]- T6 a* [$ {# Z0 k
[email protected]# z" C& E* M$ }4 y# @: S
[email protected]
: V# I5 @& V! G; M1 q; |& \3 p+ T4 g7 `5 C, l5 f5 X% x
代码如下:9 j( t# a% x9 }0 b$ t
- <?php
) D3 F: A: `& k. ^9 j5 w7 t; e3 y - $file = 'x.txt';2 Z3 X: _, H8 d, E# c
- $fp = fopen($file, 'r');
& z" M* r2 j7 M: z - if (!$fp) {# O( b5 X3 B! c$ T1 v
- exit('failed to open'.$file);! Z# r o0 x& O% F0 c
- }% V$ P* e& ?/ W
- $lineNumber = 0;
3 I" v' T: G# Y - while($line = fgets($fp)) {
/ v) I- F# Q$ z9 p, n - $lineNumber++;
% o$ b2 }4 ?. n5 V - $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
) I) J( g: I. H8 M1 B - preg_match_all($pattern, $line, $matches);
3 n7 X! Q9 H- L4 r! a9 n7 W7 ^ - if (!empty($matches[0])) {& I* z2 K; R9 w
- foreach ($matches[0] as $mail) {5 L( k% ^6 j( j6 i% p" V" \
- echo $mail.' found from line '.$lineNumber.PHP_EOL;
. F) C" y; ^* ^! \* Z/ D+ t - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);# ^2 u8 @) u& O
- }
7 w ~, r7 e& l/ v - }# }' F/ Z0 n K6 F7 h% O. c3 ~( X
- }- {- {+ o7 O: O: W E1 P
- echo "All Done";" |1 V- I; q, Y7 e* v; b/ P
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重* Y" ?# _) U4 D+ {# x
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|