|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑
5 n" a, _7 M: ]$ t7 T' Z, K, A2 k
花了几分钟帮你写了下
1 I. R5 `# Y/ z! k7 H. C例如源文件为这个txt
' |3 E6 g3 m# t% e➜ ~ cat x.txt
6 }: q% N5 Z. F3 f' g' g; e$ ]hitest
3 a: e* V2 o5 v' W2 v) R# E/ A: k[email protected]
; u% o. h# G, n; N: F! [0 a% l( [hi [email protected] test, I6 X1 h2 Z: o5 |; T$ J: O& V
[email protected] [email protected]* _+ |& P# v& H0 v: _2 x8 d3 U
执行后,得到result.txt7 y4 |5 o6 @: E
➜ ~ cat result.txt
2 J2 W2 u3 r$ u- r0 o0 L[email protected]
. v+ Y5 }$ U! V* a[email protected]
5 b0 e8 p9 [+ I[email protected]* T% q4 V, y. K) A
[email protected]$ g% o/ i, g3 [' t4 u
$ F" l0 n5 f- I+ [3 E1 c9 O
代码如下:
. i3 E7 ?7 t, M/ r- <?php# t3 @6 i! v$ C8 Q5 Z- _ g$ ~) ?
- $file = 'x.txt';# R; ?6 a; i" r F& }/ {
- $fp = fopen($file, 'r');! F3 o. ]1 H- U4 }( B5 E
- if (!$fp) {
4 H" C. o6 J+ h7 @5 ?( w - exit('failed to open'.$file);* P6 `, S( U# z' _
- }
- u5 Q- S0 E" v0 {. G8 y - $lineNumber = 0;
/ O; [; l+ Z& `9 } ~ - while($line = fgets($fp)) {
1 p+ v/ H7 Z9 K5 c - $lineNumber++;
6 H6 W A4 j! g6 p - $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
; Y- Q* ]) G1 E - preg_match_all($pattern, $line, $matches);/ k2 Q6 ?9 f' X7 H
- if (!empty($matches[0])) {) k" r/ h. B7 A
- foreach ($matches[0] as $mail) {
% t9 y& P5 y3 `% I3 ? - echo $mail.' found from line '.$lineNumber.PHP_EOL;
b, }# I6 P; H( E7 p/ \& w - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);) B) a# l8 S5 c
- }9 j l: l& |3 n% s' W3 d
- }- A3 |# U! C9 ]. b, [
- }
/ B' p# H: G7 t; L! Q% X - echo "All Done";
5 a* i& Z6 G4 V3 k2 ^
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重/ o7 P8 X7 J$ t' z. U8 V
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|