några sidor på nätet om PHP programmering

Sök efter  
Börja här Uppgifter Testa dig själv Tips Sidokarta mm. Länkar Sök

Elpost Internet

1.15.2 Internet

 

fsockopen

Öppnar en socket som kan användas för kommunikation. Se mer i network *

 

Exempel - HTTP kommunikation

<?php
$fp 
fsockopen (
   
"www.enges.org"# adressen - ip går också
   
80# port. 80 = HTTP
   
$errno# för eventuella felnummer
   
$errstr# eventuella felmeddelanden
   
30        # timeout tid innan vi skall ge upp
   
);

# prova öppna porten
if (!$fp )
{
        
# visa felmeddenande om inte det gick
    
echo "$errstr ($errno)<br>\n";
}
else
{
        
# skapa ett normalt HTTP GET kommando
        # observera att en den alltid måste sluta
        # med \r\n\r\n
        
$command "GET /phpkurs/samples/demo2.htm ";
        
$command .= "HTTP/1.0\r\n";
        
$command .= "Host: www.enges.org\r\n\r\n";

        
# sänd detta
    
fputs ($fp$command );

        
# läs resultatet 4096 byte åt gången
        # det vi får är det som en browser får
        # browsern brukar dock inte visa header informationen
    
while ( !feof$fp ) )
    {
        echo 
nl2br(htmlentities(fgets $fp4096 )));
    }

    
# stäng porten
    
fclose $fp );
}
?>
Listning 1.15.2.1 - samples/s103.php
[Visa i separat fönster]

Exempel - Tid

<?php
    $fp 
fsockopen
        
"udp://mail1.bet1.puv.fi"# protokoll och adress
        
13# port - 13 = tid
        
$errno
        
$errstr 
        
);
    if ( !
$fp 
    {
        echo 
"ERROR: $errno - $errstr<br>\n";
    } 
    else 
    {
        
fwrite$fp,"\n" );
        echo 
fread$fp26 );
        
fclose$fp );
    }
?>
Listning 1.15.2.2 - samples/s104.php

ERROR: 0 - php_network_getaddresses: getaddrinfo failed: Name or service not known
Resultat av listning 1.15.2.2

Exempel - WhoIs

<?
    $domain = "microsoft.com";
    $domain = trim( $domain );
    $fp = fsockopen(
                 "whois.networksolutions.com", # whois server
                 43, # whois porten
                 $errno,
                 $errstr, 
                 30    # timeout
                 );
    if ( !$fp ) # öppna porten
    {
       echo "$errstr ( $errno )";
    } 
    else 
    {
       fputs( $fp, "$domain\r\n" );
       print "<pre>\r\n";
       while ( !feof( $fp ) ) 
       {
          echo fread( $fp, 128 );
       }
       print "</pre>";
       fclose ( $fp );
    }
?>
Listning 1.15.2.3 - samples/s105.php
[Visa i separat fönster]

   Börja härNätverkInternet