Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to PHP server-side check if a url of a web site is valid?

I've searched our SO questions but found solutions are based on calling ping command executed from using system PHP function.

My web host server doesn't allow me to do that. What should I do?

Please help, Nam.

Update

I need to check from the server side.

like image 703
Nam G VU Avatar asked Apr 23 '11 11:04

Nam G VU


2 Answers

If by a valid URL you mean one which does not 404, then you could use get_headers() and look for 404 in the first returned array element.

$url = 'http://google.com';
list($status) = get_headers($url);
if (strpos($status, '404') !== FALSE) {
   // URL is 404ing
}

Alternatively, you could look for 200 which would be a normal happy request :)

like image 102
alex Avatar answered Oct 10 '22 03:10

alex


try this:

//checking if the site exists by fopen, instead of file_get_contents to speed it up

$url = "URL"; //your url goes in this place instead of nabtron.com

if (@fopen($url,"r")) {
echo "<b>".$url."</b> is accessible<br />";
}
like image 37
fingerman Avatar answered Oct 10 '22 02:10

fingerman