Knowledge Base Nr: 00271 scriptgen.txt - http://www.swe-kaiser.de

Ajax: lesen von serverdaten / aufrufen von serverscripten über javascript
PHP: socket-programmierung

  
####### einbinden der scripte in die html-seite
<h3>perl-script returns:</h3>
<script type="text/javascript" src="http://192.168.2.88/kaiserreich/cgi-bin/dummy.pl"></script>
<h3>PHP-Script returns:</h3>
<script type="text/javascript" src="http://192.168.2.88/kaiserreich/dummy.php3"></script>

####### perl-script
#!/usr/bin/perl

$data = "todo: get data from server";

print "\n\ndocument.writeln(\"$data\");"; #wichtig: 2 leerzeilen am anfang

####### php-script
<?
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");

function getIP($host, $path, $port)
{
#php4 only: $fp = fopen("http://$host:$port$path", "r");
#unterstützt keinen proxy!

clearstatcache();

$fp = fsockopen($host, $port);
if (!$fp)
{
echo("$host cannot be reached!\n");
return 0;
}

#index.htm anfordern
fputs($fp, "GET http://$host:$port$path HTTP/1.0\r\n"
. "Host: $host:$port\r\n"
. "User-agent: PHP/class http 0.2\r\n"
. "\r\n");

#header überlesen
while(trim(fgets($fp, 1024)) != "")
/*ignore it*/;

#die erste zeile enthält die ip adresse des routers in einem html-kommentar
$ip = fgets($fp, 1024);
$ip = chop($ip);
$ip = eregi_replace("<!-- ", "", $ip);
$ip = eregi_replace(" -->", "", $ip);

return $ip;
}

$ip = getIP("www.kaiserreich.de", "/Index.htm", 80);
echo("\n\ndocument.writeln(\"php-ip: $ip\");\n"); #wichtig: 2 leerzeilen am anfang
?>