[PHP] Alternative zu file()

Stonebroke

klammUrgestein
10 Juni 2006
2.554
63
Hallo,

ich ärgere mich schon eine ganze Weile darüber, das mein Hosting-Anbieter mir allow_url_fopen ausgeschaltet hat und ich nun auf file(); verzichten muss.

Die Alternative zu file(); in dem Snippet-Thread ist mir nicht entgangen, aber funktioniert hat auch diese nicht.

Hat vielleicht noch jemand eine Idee wie ich bald wieder meinen EF-Account nutzen könnte.

Ich selber weiß nicht mehr weiter - und noch weniger, ob ich überhaupt ein Recht auf die alte Konfiguration meines Anbieters habe. :roll:
 
Die Alternative zu file(); in dem Snippet-Thread ist mir nicht entgangen, aber funktioniert hat auch diese nicht.

Was genau geht denn daran nicht?
Habs bei mir auf nem lokalen Server getestet und da funktionierte es prima.
Kommt ne Fehlermeldung oder sonst irgendwas?
 
is ja auch richtig so. alles, was ein script unsicher machen kann, wenn es nicht ordentlich programmiert wurde (was gerade bei klamm-scripts durch möchte-gern-programmierer sowieso ständig der fall ist), abschalten.

vielleicht hilft dir diese funktion:

PHP:
function http_get($url)
{
   $url_stuff = parse_url($url);
   $port = isset($url_stuff['port']) ? $url_stuff['port'] : 80;

   $fp = fsockopen($url_stuff['host'], $port);

   if($fp){

   $query  = 'GET ' . $url_stuff['path'].'?'.$url_stuff['query'] . " HTTP/1.0\n";
   $query .= 'Host: ' . $url_stuff['host'];
   $query .= "\n\n";

   fwrite($fp, $query);

   while ($tmp = fread($fp, 1024))
   {
       $buffer .= $tmp;
   }

   }else{
       $buffer="Connection failed"; //if connection is impossible
   }

   return $buffer;
}

habe die jetzt auch nur aus dem internet rausgesucht, also nicht getestet.
als übergabewerrt verlangt die funktion die url und der rückgabewert ist unter anderem der html-code.
 
Dein Code arbeitet genauso wie das Beispiel im Snippets Thread ;)
VOn dem ich immer noch überzeugt bin, dass es funktioniert.
Kann mir nicht vorstellen, dass der Anbieter ausgehende Socket Verbindungen unterbindet.
 
Am meisten würde wohl ein Link zum PHPInfo helfen. Da kann man leicht ablesen, ob Sockets verfügbar und enabled sind oder ob das Problem woanders hängt.
 
Was genau geht denn daran nicht?
Habs bei mir auf nem lokalen Server getestet und da funktionierte es prima.
Kommt ne Fehlermeldung oder sonst irgendwas?

Mit dem Code in den Snippets hat $result (Array) keine Werte.

@theHacker

phpinfo(); lässt sich leider nicht ausführen - der Browser bleibt weiß.

@glowhand

Dein Beispiel funzt leider auch nicht. :(

Kann mir nicht vorstellen, dass der Anbieter ausgehende Socket Verbindungen unterbindet.

Scheint mir aber fast so.
 
Zuletzt bearbeitet:
Folgendes sollte ok sein ;)
Sollte, ja. Sehr merkwürdig, bin ich überfragt.
Dementsprechend wundert es mich dann aber auch ned, dass sonst auch nix funktioniert :mrgreen:

Ich würde einfach mal beim Hoster nachfragen, ob Sockets enabled sind bzw. falls nicht, dass das mal gemacht wird. Wenn schon allow_url_fopen disabled is, dann muss man dir ja wenigstens eine Möglichkeit einräumen, nach außen zu kommen.