|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 - a4 s8 s1 v% \- ?' ]4 Y5 b
6 A* U4 x0 v* H$ D- ?* S. L8 u+ a
花了几分钟帮你写了下
; l* o9 K9 p, n2 ]* t- i. t" \例如源文件为这个txt$ {3 L8 _+ S" Y1 C+ [, m8 W, M
➜ ~ cat x.txt
9 U6 P( W; j0 _" K' w# ^hitest
4 F4 g* v$ j3 g6 P1 y5 I$ a, X[email protected] I w2 q3 a2 U( i$ I5 z" q
hi [email protected] test
# ~0 ?% }6 j- f1 g[email protected] [email protected]
1 J) V/ r) {4 [执行后,得到result.txt( H! _9 T1 x; ~) X% d( V. i
➜ ~ cat result.txt - _, E0 P5 K( V) H
[email protected]
: N! K1 R) S% U q+ \- D[email protected]
7 _! m4 z$ e* i9 O- y[email protected]
+ E6 T& ^6 }( F8 }2 F3 P! t[email protected]
- E4 p8 e% [( T8 [6 x
, V" N" m) B N- Y7 k代码如下:
- ~; B; p/ U5 h# d4 p" H- <?php
& F& m/ v w2 _3 h! Y- U- g - $file = 'x.txt';, A5 i" I6 X$ A8 L7 E1 S
- $fp = fopen($file, 'r');- B' n: V* i6 c% u F9 R
- if (!$fp) {4 M$ q' C7 Z7 r! ]
- exit('failed to open'.$file);
$ [5 K. ^2 V, ]1 P - }
+ Q* o2 Y' o4 n1 c0 ~! u& H: E - $lineNumber = 0;! N N7 ]/ \9 C0 C( e. H B$ [6 T" q2 ~
- while($line = fgets($fp)) {
& _% F6 y- w6 i( B - $lineNumber++;
, U& t- N: q5 D C$ e5 z4 M) q - $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
$ M# C6 m6 @: m. P - preg_match_all($pattern, $line, $matches);7 g. i. J) k1 Z+ J0 N! c5 @
- if (!empty($matches[0])) {
+ o3 W9 b$ T( \$ q - foreach ($matches[0] as $mail) {
" j/ z, V( q8 O7 e- x0 e2 [ - echo $mail.' found from line '.$lineNumber.PHP_EOL;
/ q% k' t& }" I% ` W E8 r1 ` - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);, j! Z% E) e/ j) m5 B' K! c% L
- }
- a) d1 e! L( L8 X - }1 j! |/ @: d9 M
- }
' [: J% m8 f C9 r - echo "All Done";
% H! f9 {! I* X
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重
+ L8 M( ]; a# N- }使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|