|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑
; ~+ M1 n+ r8 D( K) J- Q
, O' n' b0 u- b Q6 w; }; L! ]# e花了几分钟帮你写了下 # g2 N2 y ^) N9 \1 f
例如源文件为这个txt5 `8 M, Z+ I- L7 q
➜ ~ cat x.txt
% H3 y3 b' D. L4 m: o" }0 rhitest
+ w6 \: m5 F7 s: `( K) z) U# z[email protected]2 H: u7 n# [. K$ @% V) ]5 ~
hi [email protected] test
( f/ u! {6 q/ x. l( [[email protected] [email protected]
, _- H, Z) M0 R3 w, M执行后,得到result.txt1 N& a& z% B, _' ?0 [
➜ ~ cat result.txt
: G, i0 p( U5 Y6 W6 I[email protected]" ?1 c+ a6 N ^% T
[email protected]
& m/ c3 L( N2 }" y[email protected]
% Z' }1 G$ P# l, P1 h% p- f[email protected]& P/ y1 X, K( b
1 X4 {$ ?1 y( _1 W
代码如下:
# \8 l; V, o! z7 Q; g" f- <?php
9 z+ h7 E7 ]2 Q. m7 E - $file = 'x.txt';
4 W' F4 y0 u! O3 Y1 M* |/ O - $fp = fopen($file, 'r');
4 M1 w. n/ F8 p; S - if (!$fp) {/ i/ F! | \3 I' d
- exit('failed to open'.$file);2 S/ J8 O1 P. Z! N" x% N6 L1 T
- }* m" B+ a0 y) r4 z/ ^* ]
- $lineNumber = 0;
2 `# c5 N5 m7 y6 G1 L - while($line = fgets($fp)) {$ o7 }2 Y' q* G. Q" f
- $lineNumber++;# S9 @3 G. T# X
- $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';: W! T- H2 P* i: J
- preg_match_all($pattern, $line, $matches);2 H3 d4 @% w8 a7 H8 l9 V# q3 o
- if (!empty($matches[0])) {
5 ~7 z/ I* o8 v9 ~5 r - foreach ($matches[0] as $mail) {
2 G5 H& P8 J" p) F% j/ z9 p7 X3 K - echo $mail.' found from line '.$lineNumber.PHP_EOL;
- s% ]6 Z9 a7 \ - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);. D' |% |' U. E0 j
- } P/ S& N- T* d. `! h0 x. Q5 t0 w
- }
+ Y, w6 w0 |; ^3 ^+ r - }0 I) D' i7 R7 h$ q0 b
- echo "All Done";
% b b# y# J) D" l* Y" J% z" v
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重" h' ~5 t( y+ p) L
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|