|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 / W# x X# G+ M6 p
. l) r# H$ v' l. m% l3 t花了几分钟帮你写了下
6 P$ v% b K' `& [) K% r; \例如源文件为这个txt U j3 V/ }5 l) W2 k# C
➜ ~ cat x.txt
+ N: {0 B2 g1 e8 k q! ohitest1 s3 Y4 a0 |6 F. T
[email protected]
3 j* X5 q. o, |6 q% D7 ^hi [email protected] test+ c+ E5 h/ y3 e u) A+ I
[email protected] [email protected]
5 F2 I7 f# z* \: A# p: T执行后,得到result.txt
; @4 `; p8 n9 E2 E/ Q5 Z0 A' [➜ ~ cat result.txt 6 v0 n- h, J" U- m) E8 H" [0 B
[email protected]# j3 R6 j% `) T$ {! r+ {
[email protected]9 m* h- |5 z: M2 d; E
[email protected]
5 a* ^3 g' q; ^/ a- h1 R[email protected]
/ K4 I' s+ {% K( J8 E; s# {4 I+ |) n, c- ~. ~9 ]& a
代码如下:
( g; K& }: N/ S) d7 r: d- <?php+ {, u9 ^: @0 L: a( _; A D& ^
- $file = 'x.txt'; F3 g9 y7 l8 u. ]
- $fp = fopen($file, 'r');6 K/ F7 b9 B: t0 F
- if (!$fp) {
9 }/ I5 y/ \4 ?7 v; |4 ~# g* @/ m - exit('failed to open'.$file);8 z4 A: W$ d4 h$ }; j8 D
- }
6 q. Q% U4 Q3 c* E - $lineNumber = 0;
1 W1 g" \7 A7 ^ - while($line = fgets($fp)) {/ _9 a! T; Z8 p0 W
- $lineNumber++; n' s2 Q# D2 x u0 r! l
- $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
* @3 \. E, i: O C - preg_match_all($pattern, $line, $matches);
* d! M3 a5 R) z% D- f# x - if (!empty($matches[0])) {. K0 A- I5 @, b) n! ^
- foreach ($matches[0] as $mail) {5 [* m; G! ]8 G7 s2 z' x0 V) w1 X
- echo $mail.' found from line '.$lineNumber.PHP_EOL;' N2 l. B) ~7 A( a8 V7 I/ ^
- file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);
/ z. q% M0 ?6 V% e# W' U - }
8 W# T" A9 c2 r6 E - }
- U, J0 m# Z& v! h9 x: w D: H; F - }
6 {) W ~( t0 M7 ^, P0 O! L! V - echo "All Done";
: X8 r1 W. l7 h
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重
& p7 ~0 w6 P/ I. j; d; e- s使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|