|
发表于 2017-12-4 00:39:19
|
显示全部楼层
本帖最后由 bjzhush 于 2017-12-4 00:45 编辑
5 ^2 I2 o$ I/ b( W; L# m1 E. r# o2 u$ ^# _5 J
花了几分钟帮你写了下 , u h2 ~! b3 T+ e& ^- ^$ H
例如源文件为这个txt' j6 ^0 [+ A/ E6 f' ~
➜ ~ cat x.txt
7 x# z' k2 ]$ m. @5 ]1 b6 e- zhitest
8 U E( \2 v* p' L+ h* Z: |[email protected]
$ N! l# C3 j0 Qhi [email protected] test H0 U3 ]6 y' z
[email protected] [email protected]
4 q+ @, L" s: E$ w1 g- P执行后,得到result.txt
+ h; |. K+ m! H7 w➜ ~ cat result.txt
3 K5 U7 O* z( m8 g) o8 P* u1 x4 H/ {[email protected]
4 C) B" k3 ~8 I! {1 |* N( ^[email protected]& r+ s3 R. J) i! H
[email protected]
9 `6 v9 @! \ t% d. m& c4 C( W[email protected]
$ C! ^: O8 ?5 `. h9 R" |" z- G0 w4 f6 h
代码如下:
, H K: s/ W2 Y* U6 I5 l) {! x8 L: x% K- <?php1 Q1 M* j4 I0 X x( F3 U
- $file = 'x.txt';
5 ^, |2 g$ ]* T' l: J/ \: I" j - $fp = fopen($file, 'r');- D* ^* Y4 w- o! u! y
- if (!$fp) {, m# \9 N; j5 S# U
- exit('failed to open'.$file);
; r+ A& S9 A& l! |" g3 A, _ - }
' S$ K! c) ]" A1 r - $lineNumber = 0;) l, m0 B0 c/ E1 ? q) M/ X
- while($line = fgets($fp)) {: Y% {4 B7 \& P8 _1 s
- $lineNumber++;& q# s- s+ u6 J" t. N3 {2 e
- $pattern = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';0 B& b R6 T6 f" ~, H, x
- preg_match_all($pattern, $line, $matches);
( f+ K& w+ a$ h* Z+ F0 r - if (!empty($matches[0])) {' b4 T0 T$ a! P
- foreach ($matches[0] as $mail) {
& [/ k$ \% i/ W0 s1 N - echo $mail.' found from line '.$lineNumber.PHP_EOL;
% K0 h. {: b7 L3 Q6 J7 A V - file_put_contents('result.txt', $mail.PHP_EOL, FILE_APPEND);9 [. _$ I- M5 r7 e1 n1 x
- }
9 o0 i1 q5 ^8 l! l: Q - }. n, _, W& ]! M. U4 @9 e0 M$ h
- }8 n9 C5 h) _# _
- echo "All Done";* ?- }7 W2 ]; Z0 W# B
复制代码 功能:支持提取一行多个email地址,结果全部保存到result.txt ,没有做去重
4 j9 x) b2 k# _& `$ H使用:代码里面的源文件是x.txt ,可以换成你自己的文件名,php保存为getMail.php 然后 php getMail.php 结果保存在result.txt里面 |
评分
-
查看全部评分
|