|
|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑 - u- y/ R& c# ?" ]% y
; a3 V1 t1 T9 T花了几分钟帮你写了下 / `8 m0 l' V* r( S* k
例如源文件为这个txt+ C0 c& r4 m8 x4 ~7 O
➜ ~ cat x.txt; W0 j+ r3 d- L% A/ d2 I
hitest3 }1 ?( L4 e0 W
[email protected]0 j& [- A) [9 o0 }# D* |$ y" F
hi [email protected] test
- |8 F8 k6 z9 {" d: _4 p% Q7 [[email protected] [email protected] b# a+ Z# }$ _& \8 m- x- C- S6 |2 D- I
执行后,得到result.txt
& @& w( X/ l' Z) {9 Y8 L' P➜ ~ cat result.txt
! B- }. ~- J; g! B# L% g; ~4 T[email protected]) K0 c. J: v4 e5 [3 i! A$ {+ L
[email protected]! w2 j* S+ ~# n7 M
[email protected]
/ s4 Z( e0 k3 f" ^9 Q7 A( x. S9 u; P[email protected]
9 q- z% d. K0 p% W! u8 F$ y+ W' e. a4 C* T" d8 f& N' n: B
代码如下:
9 V! d9 p4 F9 b& W- l2 E- <?php
9 u; r2 g2 D! J+ K1 ? - $file = 'x.txt';' |7 v8 A' `) ?) o6 \9 {, }
- $fp = fopen($file, 'r');
5 }. E" W, ?4 f% L3 I- S - if (!$fp) {' C' X+ ]! a4 h4 n R' g, N
- exit('failed to open'.$file);( G/ l7 N" l7 F( b7 H1 l j
- }
( |% F! C5 Z* ?5 F& H - $lineNumber = 0;
* C6 x( N0 B9 @6 i - while($line = fgets($fp)) {: }8 F8 l! O' h
- $lineNumber++;# u% r$ C q$ ~% t! W* y) e0 V
- $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';) I. {/ V3 p. U; V
- preg_match_all($pattern, $line, $matches);
9 m. r+ _0 f9 ~' U4 M0 A - if (!empty($matches[0])) {) ?9 w/ O, ?( R2 A7 C" P
- foreach ($matches[0] as $mail) {& d+ Q, b! I2 a( P0 T* v
- echo $mail.' found from line '.$lineNumber.PHP_EOL;/ K. }4 l0 T" O, t& R. T
- file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);
8 V6 u2 s' m$ \8 K6 a - }
! \, X Q/ m0 W6 v8 k( Y/ X% ^7 j - }
! O' ?! w( _7 n" z& t - }* S. B. q R2 r
- echo "All Done";
8 k: A5 D0 m! J4 l; x- C# n. A
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重+ u* U9 |& j7 t' x
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|