1); // $url .= "&quantity=".$quantity; header("Location: $url"); //} //else //{ // logPinging("using backup url"); // header("Location: $backupURL"); //} exit(); } function is_valid_url( $url ) { $start = microtime(); $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; $end = microtime(); $start = explode(" ",$start); $end = explode(" ",$end); $diff = ($end[0] + $end[1]) - ($start[0] + $start[1]); logPinging(" pinging took: ".$diff); return ( bool ) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers ); } $end = microtime(); $start = explode(" ",$start); $end = explode(" ",$end); $diff = ($end[0] + $end[1]) - ($start[0] + $start[1]); logPinging(" (in return always false) pinging took: ".$diff); return false; } ?>