/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Checke om htm-side existere på remote serv~
Fra : Michael


Dato : 07-08-11 08:48

Jeg er absolut nybegynder hvad php angår.
Jeg har brug for at checke om en bestemt side eksistere på remote
server.
Brugeren indtaster en ip-adresse "serverip" i en form på form.htm
som bliver submittet til pbss.php.
Jeg har nu brug for at finde ud af hvilken af følgende sider
eksistere:

(http://205.234.159.146/205.234.159.146_8777/pbsvss.htm)

(http://205.234.159.146/pbss/pbsvss.htm)

(http://205.234.159.146/205.234.159.146/pbsvss.htm)

(http://205.234.159.146/205.234.159.146-8777/pbsvss.htm)

(http://205.234.159.146/8777/pbsvss.htm)

(http://205.234.159.146/pbsvss.htm)

Hvordan gør jeg det? Gerne skåret ud i pap :)

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Martin Larsen (08-08-2011)
Kommentar
Fra : Martin Larsen


Dato : 08-08-11 09:22

Michael wrote:

> Hvordan gør jeg det? Gerne skåret ud i pap:)

Kør dette program:

<?php
$server = "http://205.234.159.146/pbss/pbsvss.htm";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
$info = curl_getinfo($ch);
echo "status code: $info[http_code]\n\n";
echo "Full info\n", print_r($info,1);
?>

Du skal kigge på statuskoden for at se om siden eksisterer. Fx 200
betyder alt ok, 302 betyder flyttet midlertidigt, mens 404 betyder at
siden er ikke fundet. Der er mange andre statuskode, se her:

http://www.google.com/support/webmasters/bin/answer.py?hl=da&answer=40132


Stig Johansen (08-08-2011)
Kommentar
Fra : Stig Johansen


Dato : 08-08-11 10:38

Martin Larsen wrote:

> Du skal kigge på statuskoden for at se om siden eksisterer. Fx 200
> betyder alt ok, 302 betyder flyttet midlertidigt, mens 404 betyder at
> siden er ikke fundet. Der er mange andre statuskode, se her:

Vær også opmærksom på om det er et 'webhotel' eller andet med mange
'domæner'.

Det var blot en impuls om at man bør lave en HTTP/1.1 request med passende
Host header.

Jeg kan se:
http://www.robtex.com/ip/205.234.159.146.html
at der ikke er tale om en sådan 'sag', så mit indlæg er måske ikke relevant.

--
Med venlig hilsen
Stig Johansen

Martin Larsen (08-08-2011)
Kommentar
Fra : Martin Larsen


Dato : 08-08-11 12:24

Stig Johansen wrote:

> Vær også opmærksom på om det er et 'webhotel' eller andet med mange
> 'domæner'.
>
> Det var blot en impuls om at man bør lave en HTTP/1.1 request med passende
> Host header.


Helt korrekt, men i Michaels eksempler er der udelukkende tale om rene
ip-adresser. Men som udgangspunkt har du helt ret.

Michael Tillgaard (08-08-2011)
Kommentar
Fra : Michael Tillgaard


Dato : 08-08-11 18:34

Takker mange gange.
Det var lige noget jeg kunne bruge (dog uden at forstå alle enkelt dele).
Jeg laver nu et check på hver enkelt server mulighed i stil med det neden
under. Det er muligt det kan gøres mere smart, men det må komme hen ad
vejen. Du skal i hvert fald have mange tak. Hilsen Michael.

<?php
$server = "http://$_POST[serverip]/$_POST[serverip]_8777/pbsvss.htm";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
$info = curl_getinfo($ch);

if ( $info[http_code] == 200 ) {
   echo '<img src="pbss_online.png" width="45" height="12" />';
   echo "PBSS are found here: ";
   echo "http://";
   echo $_POST["serverip"];
   echo "/";
   echo $_POST["serverip"];
   echo "_8777";
   echo "/pbsvss.htm ";
   echo "<a href=";
   echo "http://";
   echo $_POST["serverip"];
   echo "/";
   echo $_POST["serverip"];
   echo "_8777";
   echo "/pbsvss.htm";
   echo " ";
   echo "target=";
   echo "pbssframe";
   echo ">"; echo "PBSS-list";
   echo "</a>";
} else {
   echo "";
}
?>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin Larsen (08-08-2011)
Kommentar
Fra : Martin Larsen


Dato : 08-08-11 20:11

Michael Tillgaard wrote:

> Det var lige noget jeg kunne bruge (dog uden at forstå alle enkelt dele).
> Jeg laver nu et check på hver enkelt server mulighed i stil med det neden
> under. Det er muligt det kan gøres mere smart, men det må komme hen ad
> vejen. Du skal i hvert fald have mange tak. Hilsen Michael.

Selv tak

Det ser fint nok ud, bortset fra et par detaljer:

Linjen

if ( $info['http_code'] != 200 )

skal have et par gåseøjne omkring http_code for at undgå notifikationer
fra PHP-fortolkeren. Notifikationer er "milde" advarsler.

Dernæst bør du have gåseøjne omkring href og target, altså href="xxx" i
stedet for href=xxx.

Endelig kan du benytte heredoc-syntaksen for at stykke sådanne
sammensatte echo'er sammen på en lettere måde. Det er ikke alle der
bryder sig om syntaksen, men jeg synes den er rar. Eksempel vist hereunder:

<?php
$server = "http://$_POST[serverip]/$_POST[serverip]_8777/pbsvss.htm";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
$info = curl_getinfo($ch);

if ( $info['http_code'] == 200 ) {

echo <<<EOD
<img src="pbss_online.png" width="45" height="12" />PBSS are found here:
http://$_POST[serverip]/$_POST[serverip]_8777/pbsvss.htm
<a href="http://$_POST[serverip]/$_POST[serverip]_8777/pbsvss.htm"
target="pbssframe">PBSS-list</a>
EOD;

} else {
   echo "";
}
?>
<?php

?>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste