|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑
+ k0 Q; M3 S5 g& ~* L9 f0 ^9 V( z
" p5 o4 a% m. P花了几分钟帮你写了下
, ]6 [, `9 h: N例如源文件为这个txt. m; |: _6 O, d; `9 T g" n
➜ ~ cat x.txt; K5 c1 @( L( B0 e. P
hitest! R- u% g$ w7 f. z$ K- s# C
test@qq.com
7 `0 ^" b7 m2 |% P$ q" T0 i: ghi testb@qq.com test
% d9 }: V7 Z \3 r* |0 ~! o! ya@qq.com b@qq.com; t: o# x; S: }0 a5 \. H0 M
执行后,得到result.txt K* s2 p" t! ?& g1 y5 R3 z
➜ ~ cat result.txt
( i; `/ \: J/ a" O+ V; }. r0 o ztest@qq.com; A9 v/ @2 Z+ W
testb@qq.com2 G' \( R& L# X) @/ t8 S$ F
a@qq.com- L/ P( f; P( r% s
b@qq.com" y+ W/ @" }8 D2 z
, z# J+ A% d% @. a+ \4 }5 d; o" J
代码如下:: M, S* l. \8 r/ L) b
- <?php9 E4 q6 N% i- j- I3 G, Q
- $file = 'x.txt';
$ ~4 U" O/ r; Q; h2 I - $fp = fopen($file, 'r');
8 [6 _% S; l- f7 f - if (!$fp) {
+ |: ?+ R( ]0 ~8 c1 O5 b S - exit('failed to open'.$file);
: h; t" s4 o, _9 Y0 a7 e0 p/ G - }
- G4 m+ e$ T! {. f- ^% u! N% {7 s - $lineNumber = 0;2 A+ X2 _' P+ x3 t/ L0 g, X; L( j5 q
- while($line = fgets($fp)) {
: p$ A9 C+ e3 ]9 l* m& m! k/ S/ [ - $lineNumber++;
8 ` O2 c9 h$ }/ `' w! p1 E - $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
% a& q4 H, q# ]! U J6 L, c - preg_match_all($pattern, $line, $matches);
4 F. W: l# T1 j0 \; C1 F% z0 Q: j0 s - if (!empty($matches[0])) {, W( J; Z2 f, m; M3 U! K( X
- foreach ($matches[0] as $mail) {+ ?; t. P! p6 J7 U( S6 k
- echo $mail.' found from line '.$lineNumber.PHP_EOL;2 \4 y* b9 q8 Q4 z& O) r" J
- file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);' Q3 l" t5 _9 ^6 I6 x
- }
& ]) n2 r& D2 ?4 \4 f# q - }' E5 c3 F2 H* V
- }/ w+ t- l# H9 b8 ?/ ^
- echo "All Done";" a6 p) Z+ G5 ^
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重
( i3 I2 j) j% K: b. F# N, \. L使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|