|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 % c8 V6 q) p( o* q
& u6 b7 z, O8 O2 |
花了几分钟帮你写了下 ) z1 ~5 _$ I. z1 V! b0 u3 Z
例如源文件为这个txt
% {: w5 z' d0 j➜ ~ cat x.txt
) |8 G6 E2 ~* {( k2 [hitest
) [7 p6 T- A' k[email protected]
: N4 ~: P8 ?) U3 I' ^ Whi [email protected] test
# g1 Q: C7 I$ z9 f[email protected] [email protected]# P& i/ B# Q& l0 G% o# G+ u
执行后,得到result.txt4 U! Y; [5 x H# m4 j! y
➜ ~ cat result.txt " R% j! n7 A9 S! m
[email protected]
) Q) `$ i7 V8 I- G: A[email protected]2 H& _ _' v8 y# |. `# T$ {. P- T
[email protected]
8 Q- l& B/ @ R6 l7 I, a9 l0 B: ?2 ^% a[email protected]
0 j" N- M9 I% e4 x0 L: b7 r- ^
代码如下:
+ @9 y/ q% N2 |( E, j- <?php8 w5 {. d0 w, n& M, o
- $file = 'x.txt';! ~) _; Y6 W5 `: w" s
- $fp = fopen($file, 'r');; _9 ?) E6 S: O+ H- S8 t
- if (!$fp) {2 x+ ?3 L; ?1 h' c2 N- b
- exit('failed to open'.$file);
/ \# t: S( f% e9 p7 o# A - }
; O- x2 x7 \+ y% M! R9 p& g6 J - $lineNumber = 0;. A1 W+ l# l' Y Y
- while($line = fgets($fp)) {
9 x, `. {, J( p+ c! @ - $lineNumber++;
8 B; s% F& P5 Z- | e6 T - $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';1 @0 S; p) Q: x3 R2 H
- preg_match_all($pattern, $line, $matches);' o7 r; H B& g: A
- if (!empty($matches[0])) {& o- `0 ~4 m3 b5 g+ ?
- foreach ($matches[0] as $mail) {
& ?3 }# D" y4 d7 _+ y9 |( l - echo $mail.' found from line '.$lineNumber.PHP_EOL;
1 k7 \$ q6 I" ^5 e& R - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);
% g0 C4 `8 k2 v0 K3 T - }
o: F0 a9 z# G6 V - }
( d$ d0 E) H( `6 y; F3 Q7 g2 B8 w i. H: \# e - }
" C1 h6 w1 o! A Z ?8 ` - echo "All Done";
) F4 ^7 ]+ D2 _, G
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重
0 P1 K( X7 @% p7 J# H5 P, k使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|