|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑
/ p/ R$ Z3 c9 s6 ]6 b) b! P
' x) L0 J& W& X8 t$ V花了几分钟帮你写了下
. h5 V- S0 h/ U! H: f例如源文件为这个txt
. h9 G& z# p7 q6 A; H5 I! ^1 j➜ ~ cat x.txt
3 H' [2 s4 Q' q) ^. Jhitest" S) {$ E$ Y; N S( V
[email protected]
% S3 R. r7 D6 K* W- f% rhi [email protected] test
3 e5 ]" F4 X3 r: ?9 K[email protected] [email protected]
% x- i) V' U2 s9 C# w执行后,得到result.txt8 [6 r6 {' ?4 f* I1 f! @
➜ ~ cat result.txt
! w$ c4 }; F6 w6 }+ x: z/ b6 k[email protected]
, z- S/ n8 g+ p4 k8 j) m5 Z' v[email protected]
' x5 j* G% G: H0 I3 d9 E& Q[email protected]: V* {% C* Y2 b0 u
[email protected]1 `% o+ U% `; I2 O
0 b( C6 G( `3 r9 y: b I/ M
代码如下:
9 V4 W6 v: w& \( b( X- <?php/ e5 d- O+ T. V. y. v
- $file = 'x.txt';2 J% p! G$ `0 y: N: U
- $fp = fopen($file, 'r');' i p5 W+ V- `, s
- if (!$fp) {
2 o# u. k: P# S0 d - exit('failed to open'.$file);
* p+ }0 a0 [1 h( l& x - }% f, _7 |! P/ F" S" _# W- T& |" L& d
- $lineNumber = 0;9 H) T2 K3 C4 f5 w$ z8 o% l
- while($line = fgets($fp)) {
: q0 }. E; }+ w& {: W6 w - $lineNumber++;
0 Y# p& |% i. z, C; i z& }6 S - $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';
; r) t9 X- o! N, i3 r* d1 W - preg_match_all($pattern, $line, $matches);7 t0 i* p5 R$ `/ p) U1 K
- if (!empty($matches[0])) {
4 @+ g' W; a, K8 r- C- E" O: F - foreach ($matches[0] as $mail) {' `; `& e* ^! f P
- echo $mail.' found from line '.$lineNumber.PHP_EOL;1 p: v# l b2 D6 j
- file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);5 w2 B6 W9 H0 u. ^3 {
- }
# X0 @; ~5 N7 F8 n% D - }+ W" H0 ]+ {* ]! J: f* Z6 b( Y4 O
- }
/ ~2 `2 q$ }. Q/ [. ~3 W% x m - echo "All Done";: k+ S: K+ c4 I0 S
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重$ n. e" |2 F) k$ U: x, { s/ ^# d
使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|