Помоги пожалуйста, нужен чекер где бы я мог загружать список сайтов в таком виде site1.com/test.php site2.com/test.php site3.com/test.php и он определял где есть файл test.php и записывал валидные в отдельный файл.
PHP: <?php // { $spisok = array( 'http://site1.com/test.php', 'http://site2.com/test.php', 'http://site3.com/test.php' ); $valid_file = 'good_spisok.txt'; $mode = 1; //1 = не очищать файл $valid_file, а добавлять в него новый ссылки, удаляя повторы. //2 = очищать файл $valid_file и добавлять ссылки, получившиеся при новом сканировании // } $new_spisok = array(); foreach($spisok as $url) { if(file_get_contents($url)) { $new_spisok[] = $url; } } if($mode == 1) { $new_spisok = array_unique(array_merge(explode("\n", file_get_contents($valid_file)), $new_spisok)); } $fopen = fopen($valid_file, 'w'); fwrite($fopen, $new_spisok); fclose($fopen); ?>
вместо $spisok = array( 'http://site1.com/test.php', 'http://site2.com/test.php', 'http://site3.com/test.php' ); пропиши $spisok = file('file.txt'); или $spisok = explode("\n", file_get_contents('file.txt'));
сделал, только не работает выводит ошибки на каждую строку Это выводит когда скрипт есть: Warning: file_get_contents(http://adddres.com/test.php ) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/kosmik/domains/hollymarta.com/public_html/ftp/check.php on line 10 Это когда нету даж: Warning: file_get_contents(http://address.com/test.php ) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /home/kosmik/domains/hollymarta.com/public_html/ftp/check.php on line 10 Валид некуда незаписывает
забыл)) замени Code: fwrite($fopen, $new_spisok); на Code: fwrite($fopen, implode("\n", $new_spisok));
PHP: for($i=1; $i<255;$i++) if(file_get_contents("http://*.*.*.".$i."/test.php")) $new_spisok[] = "http://*.*.*.".$i."/test.php";
Помогите поставить таймаут чека на хост, если его не существует это затягиваться на долго PHP: <?php $valid_file = 'good_spisok.txt'; $new_spisok = array(); for($i=1; $i<255;$i++) if(file_get_contents("http://58.211.53.".$i."/index.php")) $new_spisok[] = "http://58.211.53.".$i."/index.php"; $fp = fopen($valid_file, 'w'); for($i=0; $i<count($new_spisok); $i++) fwrite($fp, $new_spisok[$i]); fclose($fp); ?>
Ну во первых Code: for($i=1; $i<256;$i++) Во-вторых, если страницы index.php на данном ip нет - не факт, что ip не существует. В-третьих, 255 раз проверять - это ооочень долго, поэтому и глючит. В-четвёртых, замени строчку с циклом и fwrite на Code: fwrite($fp, implode("\n", $new_spisok)); Да и вообще здесь file_get_contents совсем не подходит. Попробуй что-нибудь типо PHP: <?php // { $ip = '192.168.100.(0-255)'; $port = 8080; $valid_file = 'good_spisok.txt'; $timeout = 5; // sec // } $good_ip = array(); preg_match('~([0-9]+\.[0-9]+\.[0-9]+\.)\(([0-9]+)-([0-9]+)\)~', $ip, $regs); for($i=$regs[2];$i<=$regs[3];$i++) { $nIP = $regs[1].$i; $fp = fsockopen($nIP, $port, $errno, $errstr, $timeout); if($fp) { $good_ip[] = $nIP; } fclose($fp); } $fopen = fopen($valid_file, 'w'); fwrite($fopen, implode("\n", $good_ip)); fclose($fopen); ?>