I just started to study php and I'm reading about fsockopen()
. I tried to repeat an example from the book, but as result I get an empty page without any information.
<?php
function get_content ($hostname, $path)
{
$line = "";
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
if(!$fp) echo "$errstr ($errno)<br />
";
else
{
$headers = "GET $path HTTP/1.0
";
$headers .= "Host: $hostname
";
$headers .= "Connection: Close
";
fwrite($fp, $headers);
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose ($fp);
}
return $line;
$hostname = "www.php.net";
$path = "/index.php";
//set_time_limit(180);
echo get_content ($hostname, $path);
}
?>
What's wrong with this code and why it doesn't work?
Lines after the return
statements will never be reached.
You may want to get the last three lines of your function, out of the function.
function get_content($hostname, $path) {
$line = "";
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
if (!$fp) echo "$errstr ($errno)<br />
";
else {
$headers = "GET $path HTTP/1.0
";
$headers .= "Host: $hostname
";
$headers .= "Connection: Close
";
fwrite($fp, $headers);
while (!feof($fp)) {
$line .= fgets($fp, 1024);
}
fclose($fp);
}
return $line;
}
//Outside the function!
$hostname = "www.php.net";
$path = "/index.php";
//set_time_limit(180);
echo get_content($hostname, $path);