|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑
2 U6 I" s% c, Z3 e
# i( W v# V7 b' h: S* t1 g+ {花了几分钟帮你写了下
4 \4 e9 T( _) O0 t例如源文件为这个txt5 f% I: K5 l, Q. d# v" C/ r
➜ ~ cat x.txt
# @: x( n' ^: b L* h( q3 u6 P, nhitest9 @: C- G+ b+ y% r3 T
[email protected]- R/ u$ O$ P1 `, A2 p
hi [email protected] test! E8 N" p: C: O2 e2 f2 I8 B
[email protected] [email protected]! K/ }4 o; {( p3 i% H
执行后,得到result.txt
2 N6 Y: H) W9 D# e➜ ~ cat result.txt
- s6 j: i* A% T& [" q: Y[email protected]3 C- R" }8 Q. u) P+ Z/ B' D" M
[email protected]
- e W" B4 ? E; m7 I7 F& Y* M[email protected]- O# a6 F& M2 ?1 `) B7 l2 Z- G8 ?2 Q
[email protected]
! r- R0 }, _. d4 l3 [3 X/ c6 v' q; W9 y
代码如下:) r& C8 @* n( @
- <?php2 V ]' [ G- U3 p$ m
- $file = 'x.txt';
% O. N$ v+ o- {" f" Q - $fp = fopen($file, 'r');; Z$ z" M C8 ^4 H7 e
- if (!$fp) {8 [/ h# C' x/ I1 L1 `9 i
- exit('failed to open'.$file);! Q* E n/ n4 S" a
- }' O _3 G+ w; y/ K8 ?
- $lineNumber = 0;
* ~( y# m# l2 |8 T- L - while($line = fgets($fp)) {
7 `9 ?* k) h" p' K* R/ D+ |5 y Q - $lineNumber++;: J$ Y$ {& R( e. i8 f
- $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
* @! J& x6 O& q3 }0 M' X - preg_match_all($pattern, $line, $matches);
9 Y+ o" Q0 T* C- @0 Z: ^5 ~7 I8 k - if (!empty($matches[0])) {
5 F5 x1 |8 l0 u5 _- Z8 O6 x6 x! v - foreach ($matches[0] as $mail) {& E4 f1 H; [7 k) d' t
- echo $mail.' found from line '.$lineNumber.PHP_EOL;4 C, o7 D' _9 W
- file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);% O/ b! }) z4 V) Q1 I, q) v1 k
- }
3 Z( L8 b/ {/ ^3 K. D - }
6 O9 K# [% Q8 R2 m+ V8 r: Y$ c: c - }
6 Y/ t# o& u' m% x X: x - echo "All Done";- \, l5 ~9 ]3 q3 \7 A! J" y; Y
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重
8 P T2 e/ r) I1 y) U" |7 R3 J% H使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|