|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 & P0 c3 v7 o9 S b9 s
7 h# g, ?% q& D5 n' Y7 c; W8 v0 `7 {+ ]
花了几分钟帮你写了下
4 F: Q ^* ^7 U% ^1 L0 t例如源文件为这个txt
$ W8 K9 l- N: i4 p➜ ~ cat x.txt
9 ~! `9 U4 Q9 X( ?8 vhitest
* F! V$ L" e2 Y( j: \" K[email protected]5 Z% x, O& ^6 B3 m( F* G
hi [email protected] test0 z& B$ c8 |) N; r
[email protected] [email protected]2 w! r6 O, Z' e6 t
执行后,得到result.txt
j: t, b1 i$ ?1 S8 n3 r➜ ~ cat result.txt
% d/ N6 P S' p; H$ Y8 Y[email protected]
' U7 ?; |) P2 Y& Q7 W. U9 N% d[email protected]2 j1 d$ b# T5 h
[email protected]
4 v' V) g# W" c& T7 D, O/ Z! A[email protected]. X, K7 h6 q2 s& Y2 g/ K+ r t
( P5 n4 [, m* m3 h0 X* }( z3 [: C. `代码如下:
; `0 S; n0 T9 o; p. d% u! t" T: T- <?php/ ?! A) o) B. W! \. X0 ?" I
- $file = 'x.txt';
0 `6 X3 X+ p" T/ S3 Z# u - $fp = fopen($file, 'r');
3 k: Q9 ?9 v$ H8 f' L, W - if (!$fp) {7 t3 F( u6 A( E2 \* c0 n8 v
- exit('failed to open'.$file);
$ o( U; S* n- y+ C ` - }; g" D! |9 _) B4 i/ D' r
- $lineNumber = 0;9 F; F+ [+ `, c6 l/ k; v
- while($line = fgets($fp)) {
- `3 M+ K3 G' D9 ^/ C - $lineNumber++;
! j' |# r# m) S/ C( } - $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
4 S B' A5 P. K2 E - preg_match_all($pattern, $line, $matches);
^3 w6 }) Q. T3 S& E: P5 A# G - if (!empty($matches[0])) {
M9 h5 y! O/ M( a* D - foreach ($matches[0] as $mail) {
; m' j$ H# A. t! X& N$ e1 N - echo $mail.' found from line '.$lineNumber.PHP_EOL;9 ?2 A) {4 ^2 P
- file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);
6 D0 F. ~4 m! a( I$ o& r! h0 F' { - }2 X2 k5 K1 d7 o( }8 ~+ W! _. b
- }9 i8 l' r2 w9 A8 R
- }
; d3 p2 p) R. J" @2 ? h: ^ - echo "All Done";: [$ F2 {. M/ |$ [
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重8 q+ o. y9 S5 a; N5 p* b
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|