Next Live Event: NamePros Live Auction, May 23rd at 6PM EDT
Results from the May 8th live auction are here .
11 members in the live chat room. Join Chat !
04-11-2007, 12:52 PM
· #1 while ($awake){ code(); }
Name: Eric
Location: Kentucky
Join Date: Mar 2005
Posts: 4,046
NP$: 1958.00 (
Donate )
Check if a URL exists.
Howdy.
This simple function will check if a url is valid (going by parse_url()) and if it's 'online' - by seeing if it returns a 302, 301, or 200 status code.
EDIT: 3/4/2008, updated to more efficient.
PHP Code:
<?php
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' ] : '/' ;
$path .= (isset( $url [ 'query' ])) ? "?$url[query]" : '' ;
if (isset( $url [ 'host' ]) AND $url [ 'host' ] != gethostbyname ( $url [ 'host' ]))
{
if ( PHP_VERSION >= 5 )
{
$headers = implode ( '' , 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 , 4096 );
fclose ( $fp );
}
return (bool) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i' , $headers );
}
return false ;
}
?>
Last edited by SecondVersion : 03-04-2008 at 05:29 PM .
04-15-2007, 05:04 PM
· #2 NamePros Regular
Name: Bobby Eubank
Join Date: Jun 2005
Posts: 777
NP$: 130.25 (
Donate )
I needed this a little while ago, and here is what I have:
PHP Code:
function url_exists ( $url ) {
@ $headers = get_headers ( $url );
return preg_match ( '/^HTTP\/\d\.\d\s+(200|301|302)/' , $headers [ 0 ]);
}
then use:
if ($headers[0] == 1) {
code
}
__________________
EAUA.NET - ETIH.NET - IBOV.NET - JJOJ.NET - NNNQ.NET - UBOK.NET - WUSI.NET - ZERY.NET
04-15-2007, 05:17 PM
· #3 while ($awake){ code(); }
Name: Eric
Location: Kentucky
Join Date: Mar 2005
Posts: 4,046
NP$: 1958.00 (
Donate )
Originally Posted by bobby9101 I needed this a little while ago, and here is what I have:
PHP Code:
function url_exists ( $url ) {
@ $headers = get_headers ( $url );
return preg_match ( '/^HTTP\/\d\.\d\s+(200|301|302)/' , $headers [ 0 ]);
}
then use:
if ($headers[0] == 1) {
code
}
Not everyone has PHP5
03-04-2008, 05:28 PM
· #4 while ($awake){ code(); }
Name: Eric
Location: Kentucky
Join Date: Mar 2005
Posts: 4,046
NP$: 1958.00 (
Donate )
Updated the code, check first post.
04-10-2008, 05:26 AM
· #5 NamePros Regular
Name: Steven
Join Date: Feb 2005
Posts: 469
NP$: 1541.00 (
Donate )
Originally Posted by SecondVersion Updated the code, check first post.
I don't get it, how to use that code above? sorry, im a newbie with php
04-10-2008, 04:49 PM
· #6 Senior Member
Name: Dennis
Location: Joliet, Illinois
Join Date: Apr 2005
Posts: 1,100
NP$: 379.00 (
Donate )
Originally Posted by abcde I don't get it, how to use that code above? sorry, im a newbie with php
First, you need a webhost which supports PHP or to install it on your own PC. But on your own PC you need to also install a webserver and it's a real hassle so it's easier to have a webhost with this.
Then, input this script in to a file called file.php (or whatever_you_want.php) and save and close the file.
Now in SecondVersion's script he created the function called $is_valid_url($url); so what you'll want to do to see if a URL exists: (within the same file that the function is in [or if it's included for that matter])
PHP Code:
<?php
// Test script. Function created by SecondVersion
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' ] : '/' ;
$path .= (isset( $url [ 'query' ])) ? "?$url[query]" : '' ;
if (isset( $url [ 'host' ]) AND $url [ 'host' ] != gethostbyname ( $url [ 'host' ]))
{
if ( PHP_VERSION >= 5 )
{
$headers = implode ( '' , 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 , 4096 );
fclose ( $fp );
}
return (bool) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i' , $headers );
}
return false ;
}
if( is_valid_url ( "http://namepros.com" ))
{
echo( "w00t for Namepros.com! It's alive!" );
}else{
echo( "Oh no! Where did NamePros go!?! :(" );
}
?>
-RageD
04-17-2008, 05:11 AM
· #7 while ($awake){ code(); }
Name: Eric
Location: Kentucky
Join Date: Mar 2005
Posts: 4,046
NP$: 1958.00 (
Donate )
Thanks for answering that for me, RageD.
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off