[php] Info van internet halen via localhost -> fopen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Gegroet mede Tweakers,

Ik ben weer bezig met een nieuwe site en ben op een vreemd probleem gebotst. Het is mijn bedoeling om dus gegevens van een site te 'lezen/af te halen', die in een aantrekkelijk jasje stoppen en die vervolgens op het scherm weergeven.

Ik gebruik deze enkele lijn code om te beginnen:
PHP:
1
$handle = fopen("http://www.php.net/index.php", "r");


Op zich niks, en met zoiets kun je nooit het resultaat bekomen wat ik wil. Dat is juist maar het probleem doet zich hier al voor. Wanneer ik dit script lokaal laat draaien krijg ik vreemde errors.
Deze zijn:
code:
1
2
3
4
5
Warning: fopen() [function.fopen]: php_hostconnect: connect failed in 
E:\www\index.php on line 1

Warning: fopen(http://www.php.net/index.php) [function.fopen]: failed to 
create stream: Bad file descriptor in E:\www\index.php on line 1


Ter informatie,
Ik werk met PHP 4.3.0, Apache 2.x, ...
Ik zit in een thuisnetwerkje, maar ben server. Uiteraard heb ik ook verbinding met internet. Juist daardoor lijkt deze error mij zo vreemd.

Na php.net geteisterd te hebben was het de beurt aan google & omega. Die hebben me redelijk wat handige info bezorgd, maar helaas geen antwoord op dit probleem. Daarnet viel ook de beurt aan de GoT search engine, maar ook deze wist het antwoord niet.
Ik heb echter wel enkele topics afgelopen op hoop naar het antwoord, maar het bleef weg. Er waren wel resultaten, maar niet rond dit probleem.

Nu doe ik dus een beroep op jullie. Misschien weet iemand van jullie het simpele antwoord op dit probleem.
Ik weet dat als ik het bestand upload naar mijn webspace, dat het wel zal werken.
Maar ik zou het graag lokaal werkend krijgen.

Ik dacht dat het een instellingen in de php.ini kon zijn, maar dat was het blijkbaar niet.

Bij voorbaat dank, en als ik ergens onduidelijk ben geweest, laat het me gerust weten, dan licht ik het probleem nader toe.

edit:

Een local file openen lukt overigens wel.
fopen("c:\\blaat.txt", "r") bijvoorbeeld lukt zonder probs.

[ Voor 11% gewijzigd door Verwijderd op 17-04-2003 21:02 ]


Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
ff gezocht: http://www.php.net/manual/nl/function.fsockopen.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\n\r\n");
    while (!feof($fp)) {
        echo fgets ($fp,128);
    }
    fclose ($fp);
}
?>

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hm, bedankt voor je reply maar ik vrees dat ook dat niet helpt.
Deze errors:
code:
1
2
3
4
5
6
7
8
Warning: fsockopen() [function.fsockopen]: php_hostconnect: connect failed 
in E:\www\index.php on line 2

Warning: fsockopen() [function.fsockopen]: unable to connect to 
www.php.net:80 in E:\www\index.php on line 2

Fatal error: Maximum execution time of 30 seconds exceeded 
in E:\www\index.php on line 2

Dat is dus deze lijn:
PHP:
1
$fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);


fsockopen doet het dus ook niet.
Ik hoop dat er toch iemand is die me kan helpen. Toch bedankt!

Acties:
  • 0 Henk 'm!

Verwijderd

Je ISP heeft toch geen verplichte proxy voor poort 80 neem ik aan ?
Op welk platform draai je ?

Acties:
  • 0 Henk 'm!

Verwijderd

Vertel eens over je firewall? :)

Acties:
  • 0 Henk 'm!

  • ultimateharry
  • Registratie: Juni 2002
  • Laatst online: 07:54

ultimateharry

Team Slayer:-)

Er zijn nog veel problemen met de combo php 4.3 en apache 2.x
Ik raad je aan om apache 1.x te gebruiken, dan zit je wat dit probleem betreft zeker goed.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 18 April 2003 @ 01:00:
Je ISP heeft toch geen verplichte proxy voor poort 80 neem ik aan ?
Op welk platform draai je ?
Verplicht duidelijk niet want ik surf zonder proxy. Maar er is iets,bizars. Zie einde van me post.
Ik draai overigens op Windows 2000 Professional.
Verwijderd schreef op 18 April 2003 @ 01:06:
Vertel eens over je firewall? :)
Die heb ik niet :)
ultimateharry schreef op 18 april 2003 @ 01:20:
Er zijn nog veel problemen met de combo php 4.3 en apache 2.x
Ik raad je aan om apache 1.x te gebruiken, dan zit je wat dit probleem betreft zeker goed.
Mocht ik Apache 1.x gebruiken zat ik met het zelfde probleem.
Dit heb ik gisternacht ontdekt, het is iets heel bizars wat iemand me toch zal moeten uitleggen.

Dankzij de reply van Shadowman heb ik het gevonden. Hij poste die url, en voor de grap heb ik eens enkele scritps die daar stonden getest. Geen ene werkte, behalve eentje mbv proxy.
Deze:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
/*your proxy server address*/
$proxy = "proxy.pandora.be";
/*your proxy server port*/
$port = 8080;
/*the url you want to connect to*/
$url = "http://www.php.net";
$fp = fsockopen($proxy, $port);
fputs($fp, "GET $url HTTP/1.0\r\nHost: $proxy\r\n\r\n");
while(!feof($fp)){
 $line = fgets($fp, 4000);
 print($line);
}
fclose($fp);

Dit is het script dat werkt, op deze manier zie ik dus php.net in mijn webpagina, zonder errors. Mijn resultaat.

Nou, wat is het probleem dan |:( :?
Wel, ik zou graag geweten, 'hoe' en de 'waarom'. Ik gebruik niet eens een proxy om te internetten, waarom dan wel een proxy om dat te doen?

[ Voor 3% gewijzigd door Verwijderd op 18-04-2003 09:38 ]

Pagina: 1