странные отчеты.. ммм... PHP: <?php $text = '94.21.65.1 62 ms 1.65.xxline.net 80 94.21.65.9 62 ms 9.65.xxline.net 80 94.21.65.10 62 ms 10.65.xxline.net 80 94.21.65.18 61 ms 18.65.xxline.net 80 94.21.65.17 76 ms ns1.teleru.net 80 94.21.65.33 69 ms 33.65.xxline.net 80 94.21.66.29 46 ms tps.ruschoc.ru 80 94.21.66.85 46 ms 95.66.xxline.net 80 94.21.66.86 54 ms 96.66.xxline.net 80 94.21.66.140 46 ms mail.imgcis.com 80 94.21.66.153 46 ms 153.66.xxline.net 80 94.21.66.154 46 ms 154.66.xxline.net 80 94.21.66.178 46 ms 178.66.xxline.net 80 94.21.66.182 46 ms 182.66.xxline.net 80 94.21.66.186 46 ms 186.66.xxline.net 80 94.21.66.190 46 ms 190.66.xxline.net 80 94.21.66.213 46 ms 213.66.xxline.net 80 94.21.67.2 46 ms 2.67.xxline.net 80,8080 94.21.67.17 60 ms 17.67.xxline.net 80 95.198.85.169 89 ms sibprodmontazh-gw-r5-p1-280.ekb.unitline.ru80 95.198.85.145 110 ms gubkina-87-gw-r1-p5-330.ekb.unitline.ru80 95.198.85.157 107 ms alpinistov-77-1-gw-r1-p5-25.ekb.unitline.ru80 95.198.85.213 73 ms N/A 80 95.198.85.165 105 ms alpinistov-77-1-gw-r1-p5-25.ekb.unitline.ru80'; //$list = file('ip.txt');// можно так $list = explode("\r\n",$text); $c = count($list); for($i=0;$i<$c;$i++) { preg_match('#^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).+([\d,]{2,})$#U', trim($list[$i]), $out); if(strpos($out[2],',')!==false) { $ports=explode(',',$out[2]); $c2=count($ports); for($j=0;$j<$c2;$j++) echo $out[1].':'.$ports[$j].'<br/>'; } else echo $out[1].':'.$out[2].'<br/>'; } ?> пробелы в регулярке постирать
[dei] Чем эксплодить список - можно использовать модификатор "m" в preg_match_all и поставь if (preg_match) чтобы не было лишних двоеточий при выводе З.Ы, мне одному кажется, что для регулярок придумали отдельную тему не зря?
preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s.+([,?\d,]{2,})(?:\s|$)#U', $list, $out); бляяя ...
Code: This file was generated by Angry IP Scanner Visit http://www.angryziber.com/ for the latest version Scanned 85.249.0.0 - 85.249.255.255 (Ports: 1026,1080,3128,6588,6654,80,8080) 05.12.2008 19:47:45 IP Ping Hostname Open Ports 85.249.1.100 44 ms N/A 80 85.249.28.132 54 ms N/A 1026,1080,3128,6588,6654,80,8080 85.249.28.131 66 ms N/A 1026,1080,3128,6588,6654,80,8080 87.117.129.92 40 ms 92.129.117.87.in-addr.arpa 80,8080 87.117.129.91 40 ms mx.vers.ru 80 87.117.129.99 38 ms 99.129.117.87.in-addr.arpa 80 87.117.129.162 39 ms mail.altyngold.com 80 87.117.130.227 98 ms 227.130.117.87.in-addr.arpa 80 87.117.130.226 105 ms voice-profsouznaya-33-yakitoriya.stelcom.ru80 87.117.130.231 102 ms voice-navoslobodskaya-20-yakitoriya.stelcom.ru80
сам код: Code: <?php $fp = fopen("list.txt", "r"); $list = fread($fp, filesize("list.txt")); preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s.+([,?\d,]{2,})(?:\s|$)#U', $list, $out); for($i=0;$i<count($out[0]);$i++) { if(strpos($out[2][$i],',')!==false) { $ports=explode(',',$out[2][$i]); for($i2=0;$i2<count($ports);$i2++) echo $out[1][$i].':'.$ports[$i2]."<br />"; }else{ echo $out[1][$i].':'.$out[2][$i]."<br />"; } } ?>
Code: <?php $fp = fopen("list.txt", "r"); $list = fread($fp, filesize("list.txt")); preg_match_all('#(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s.+([,?\d,]{2,})(?:\s|$)#U', $list, $out); for($i=1;$i<count($out[0]);$i++) { if(strpos($out[2][$i],',')!==false) { $ports=explode(',',$out[2][$i]); for($i2=0;$i2<count($ports);$i2++) echo $out[1][$i].':'.$ports[$i2]."<br />"; }else{ echo $out[1][$i].':'.$out[2][$i]."<br />"; } } ?>