|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 w* [" S! W4 R" ^# G- O( V
7 x, @7 Y/ B$ V0 k) N花了几分钟帮你写了下 & V% x7 v. A7 r; ^: Y
例如源文件为这个txt
& _& N4 v- U/ t0 y6 S➜ ~ cat x.txt
. K4 N0 c/ T8 Ihitest1 A4 M- ]* m( O7 o- @
[email protected]8 f* Y( H# n3 v0 X/ V T2 A8 o
hi [email protected] test
% q9 R; O; ]9 ]" u' V- k' G2 g[email protected] [email protected]& n) T/ \$ v2 Y6 a( b6 ]
执行后,得到result.txt
2 w W% m: X% `0 G$ M➜ ~ cat result.txt ; Q6 x5 {+ v5 I5 ?
[email protected]& v$ I5 g4 S% d q* Z- [
[email protected]3 ?) R8 m6 @4 ~ F2 Q
[email protected]
2 D! ^1 s1 e4 E/ N' u5 j' i4 C[email protected]! f2 Q7 l0 h6 D1 V, M0 r% ?
- E1 T" E t' F/ l
代码如下:
* A0 }/ `/ m% M, M) Y2 o- <?php9 Q! E0 B8 D+ k5 L; h
- $file = 'x.txt';
9 U& }2 V9 q1 r" m: @6 o: w0 x4 G - $fp = fopen($file, 'r');, f# s, |1 M9 w. U5 z
- if (!$fp) { B0 T* K% H; e M7 [
- exit('failed to open'.$file);$ M# A5 {3 T( f# O
- }) Y m' A6 u& E" n( ^8 i% }5 u9 n! P
- $lineNumber = 0;
2 l& ~3 @. f9 j- v - while($line = fgets($fp)) {
1 K; p1 P0 e: u& ~ - $lineNumber++;$ |/ {! u) ^+ h! Y3 F
- $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';* i8 r. n. A! ^- @% ^4 k$ m, d
- preg_match_all($pattern, $line, $matches);4 w& w) w/ ^. h
- if (!empty($matches[0])) {- f- p/ Z" P" }; N$ p) z4 e/ d
- foreach ($matches[0] as $mail) {4 s+ X% P* s4 R2 _# L
- echo $mail.' found from line '.$lineNumber.PHP_EOL;
7 F& p: m+ B2 r" F - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);
, N' j* \' ?8 u& N8 n - }
1 q' h" g9 l, ^/ D& K1 g - }* c* N( n. D e# a5 \
- }
- W( ]4 Z& n$ F$ r - echo "All Done";
7 K* w! i7 Q8 {7 [3 _
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重) @5 Y* J' Y6 W$ @2 y0 N- X4 w+ I
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|