Avatar billede mhass Nybegynder
31. januar 2007 - 14:28 Der er 3 kommentarer og
1 løsning

Fejl ved hentning af ekstern side

Hej,

Jeg prøver at hente en ekstern side, men får en fejl. Det mærkelige er at det virker når jeg kører det på den apache der er installeret på min pc, men online virker det ikke, så er det mon blot en opsætningsting?...


Jeg bruger følgende kode:
-------
file_get_contents($domain);
-------

Og får følgende fejl:
-------
Warning: file_get_contents(http://www.sbu.dbu.dk/sr/position.aspx?poolid=35221) [function.file-get-contents]: failed to open stream: Connection refused in /usr/home/dan11062/public_html/inc/func.php on line 300
-------

Er der mon nogen der har et bud?
Avatar billede kinderaeg Nybegynder
31. januar 2007 - 14:35 #1
Vil tro det er et spørgsmål om, at du på din "online-server" er placeret bag en firewall, der ikke tillader trafikken
Avatar billede mhass Nybegynder
31. januar 2007 - 14:41 #2
hhmm, måske
Avatar billede Slettet bruger
31. januar 2007 - 15:43 #3
RTFM:
http://www.php.net/manual/en/function.file-get-contents.php
"Tip: You can use a URL as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename and Appendix M for a list of supported URL protocols."

Hvis din host har compilet PHP med cURL kan du bruge:
http://www.sourcerally.net/Scripts/29-Crawl-bot-for-PHP
Avatar billede kinderaeg Nybegynder
31. januar 2007 - 15:49 #4
Prøv evt med nedenstående. Hvis du kan oprette men ikke connecte på en socket, er det fordi din trafik er blokeret:

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.servername.com');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
    echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
} else {
    echo "OK.\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result < 0) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.arstechnica.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Closing socket...";
socket_close($socket);
echo "OK.\n\n";
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester