|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑
( U5 `8 q0 ]8 x. \. A9 Y8 d# c1 ~6 V
花了几分钟帮你写了下
9 X2 r% T& ~! d例如源文件为这个txt
# r) s* K4 ^( W, ]- _5 g9 G- h1 S➜ ~ cat x.txt
p; K o* G( M/ x1 Bhitest( Z5 w5 ~0 } `/ W, x1 ? w$ e: l
[email protected]$ G( ~! Z, L" J! F1 |
hi [email protected] test
; W D- R$ g8 C* K( w[email protected] [email protected]& ?5 X1 B+ `2 k8 w4 N1 r; ?
执行后,得到result.txt0 } m4 ^9 s l4 [" B
➜ ~ cat result.txt
' Q& W& [- |7 B% O1 q[email protected]7 B* v4 r; q: g% |5 _
[email protected] @2 K3 T) m. n6 e6 D& F
[email protected]5 @: \9 s+ E6 o2 |" w2 W, i% }
[email protected]
c5 v3 t/ P3 p3 n. H4 g4 S: v
! X* @1 p0 {, ^$ S2 d7 `8 s* H% ~代码如下:4 H7 {/ L1 w/ U% c, t- ^+ q
- <?php* ]" {# ~' h: }9 G* j) K9 c
- $file = 'x.txt';
0 t7 r0 }* a: j0 m& D* ~/ o - $fp = fopen($file, 'r');
8 n* i6 f6 ?1 q1 C0 Y - if (!$fp) {8 D( V& d" `* g4 Q. N% o# N' S, i
- exit('failed to open'.$file);
. p& @ O* U J9 R1 U }; ]0 h Q - }8 \: i P k+ J$ \' O
- $lineNumber = 0;
$ c, e/ `" o ?* _6 D1 J5 | - while($line = fgets($fp)) {
, {5 F* h R( g# A" q3 Q - $lineNumber++;
; [2 J. c. v; u. Q# \ - $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
& ]( V. P: a, C+ v | - preg_match_all($pattern, $line, $matches);1 Z X/ L) a( p$ L# V; e$ F
- if (!empty($matches[0])) {& Q& g# Z. w! d3 W+ u" a# y" I
- foreach ($matches[0] as $mail) { P, k% j6 B7 Z1 ]0 i9 L
- echo $mail.' found from line '.$lineNumber.PHP_EOL;" [" b. M/ A/ M# U; F/ {
- file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);
6 J" C' H4 u* G( m, l& c7 R - }
* L9 ?" h: g- ?/ J& `3 q% [ - }
! E6 [2 [! f8 X - }2 y* _. Q: A! M4 D" \1 y; B* G' y2 {
- echo "All Done";! K9 t8 n" r# Y$ F3 t; v7 @
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重 H* ^: q: @6 H1 S3 ^ _4 o
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|