|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 / |* p D$ T4 B2 J3 H7 ?$ j$ V
: Y+ Y+ P/ \ i( t
花了几分钟帮你写了下
% Y& o7 L/ U4 {' @, Q4 e例如源文件为这个txt3 n' Z- B5 I3 t! m) y
➜ ~ cat x.txt
/ W' X4 P7 I9 Q9 s1 {hitest
& ^/ h* j/ ~' U$ d) g' q[email protected]3 Y, g9 i J& {2 ?5 N
hi [email protected] test
# C0 n* A7 z9 Z- Z[email protected] [email protected]
4 }9 B# d# z7 I& W执行后,得到result.txt1 }8 n+ [. h2 Z& _
➜ ~ cat result.txt - r( [3 u3 y" `% E9 M
[email protected]# k6 t$ Q. P1 L+ b& E
[email protected], J( n' j' F# _1 I4 q
[email protected]
0 z7 G! a" B4 V; _2 ?[email protected]
1 M Z; @9 D: K' s- ^7 v4 e1 [2 E, V; ]& \ p
代码如下:" [$ m" M" U' Z9 R: z
- <?php! b0 N5 r! u% R" _
- $file = 'x.txt';2 L: l* b* g# i4 y! K
- $fp = fopen($file, 'r');
8 U$ A) e5 w0 B* }8 N+ | - if (!$fp) {
. ^& b9 i: V, r1 G6 R" L - exit('failed to open'.$file);% _/ I+ r* r. p6 A' `2 }! X, F$ z3 F
- }
! l0 M& l: O8 T5 u$ O - $lineNumber = 0;
+ ]) f7 M U5 y _; A b - while($line = fgets($fp)) {
5 E) D& O# n; E, J3 S0 S - $lineNumber++;9 A( m( Z1 X, N1 G% e$ f
- $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
; u: S% o, K6 a - preg_match_all($pattern, $line, $matches);
8 \0 f; N# g# k2 G- _ - if (!empty($matches[0])) {2 u$ m" V. R- `5 G& B8 G' q9 \
- foreach ($matches[0] as $mail) {
/ ]/ y; S. F: M - echo $mail.' found from line '.$lineNumber.PHP_EOL;
1 M9 A ]% O! X6 e8 |/ b - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);
- E& v# X" J, y! x+ w' H9 t- K - }
! O( w! J$ s2 } z3 Y - }
, M8 D( r, k3 t' L7 { - }4 R* ~ B Z# S, ~
- echo "All Done";8 ^5 F8 v" Q, B; b5 W4 ~
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重
. B! N! S# x& A9 e) R+ t0 T/ M使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|