Hi, I have a txt (text document) file with 300 flv url's. Some are deleted from the server so I need to see which ones do not work. The url's looks like this And I need a small PHP script to check all those url's if they are working or not, something like http://rapid-hook.com but then for FLV files. If you are interested, reply here with price to make this script Regards moker
This is to easy to pay for IMO Put urls in urls.txt <?php ini_set('error_reporting', E_ALL); $urls = file("urls.txt"); function is_valid_url ( $url ) { $url = @parse_url($url); if ( ! $url) { return false; } $url = array_map('trim', $url); $url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port']; $path = (isset($url['path'])) ? $url['path'] : ''; if ($path == '') { $path = '/'; } $path .= ( isset ( $url['query'] ) ) ? "?$url[query]" : ''; if ( isset ( $url['host'] ) AND $url['host'] != gethostbyname ( $url['host'] ) ) { if ( PHP_VERSION >= 5 ) { $headers = get_headers("$url[scheme]://$url[host]:$url[port]$path"); } else { $fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30); if ( ! $fp ) { return false; } fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n"); $headers = fread ( $fp, 128 ); fclose ( $fp ); } $headers = ( is_array ( $headers ) ) ? implode ( "\n", $headers ) : $headers; return ( bool ) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers ); } return false; } foreach($urls as $v) { $valid = is_valid_url($v); if ($valid == "1") { echo $v . " is valid<br />"; } else { echo $v . " is NOT valid<br />"; } } ?> Code (markup):
First of all thanks alot papa_face! I have tested your script but it gives "not valid" to every flv file??? Regards
Damn whitespace lol. This should work: <?php ini_set('error_reporting', E_ALL); $urls = file("urls.txt"); function is_valid_url ( $url ) { $url = @parse_url($url); if ( ! $url) { return false; } $url = array_map('trim', $url); $url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port']; $path = (isset($url['path'])) ? $url['path'] : ''; if ($path == '') { $path = '/'; } $path .= ( isset ( $url['query'] ) ) ? "?$url[query]" : ''; if ( isset ( $url['host'] ) AND $url['host'] != gethostbyname ( $url['host'] ) ) { if ( PHP_VERSION >= 5 ) { $headers = get_headers("$url[scheme]://$url[host]:$url[port]$path"); } else { $fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30); if ( ! $fp ) { return false; } fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n"); $headers = fread ( $fp, 128 ); fclose ( $fp ); } $headers = ( is_array ( $headers ) ) ? implode ( "\n", $headers ) : $headers; return ( bool ) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers ); } return false; } foreach($urls as $v) { $valid = is_valid_url(trim($v)); if ($valid == "1") { echo $v . " is valid<br />"; } else { echo $v . " is NOT valid<br />"; } } ?> Code (markup):