- 20 April 2006
- 22.682
- 1.315
Wenn allow_url_fopen auf false gesetzt ist, schlagen die Funktionen fopen(), file(), ... fehl:
Danke @tleilax für den Code
Quelle im Crashforum:
https://www.klamm.de/crashforum/showpost.php?p=1041750&postcount=5
Wenn Sockets verfügbar sind, kann man das mit dieser Funktion umgehen:Warning: file() [function.file]: URL file-access is disabled in the server configuration in /www/script.php on line 123
PHP:
/** myfile(URL) ** Aequivalent zu file()
***************************************** (w) tleilax, 2004 ***
* Funktioniert auch bei allow_url_fopen=false, solange Sockets
* geöffnet werden können
*
* Übergabe:
* Die auszulesende URL.
* Rückgabe:
* Array, das alle Zeilen der auszulesenden URL enthält.
***************************************************************/
function myfile($url) {
// URL zerlegen
$parsedurl = @parse_url($url);
// Host ermitteln, ungültigen Aufruf abfangen
if (empty($parsedurl['host']))
return null;
$host = $parsedurl['host'];
// Pfadangabe ermitteln
if (empty($parsedurl['path']))
$documentpath = '/';
else
$documentpath = $parsedurl['path'];
// Parameter ermitteln
if (!empty($parsedurl['query']))
$documentpath .= $parsedurl['query'];
// Port ermitteln
if (!empty($parsedurl['port']))
$port = $parsedurl['port'];
else
$port = 80;
// Socket öffnen
$fp = fsockopen ($host, $port, $errno, $errstr, 30);
if (!$fp)
return null;
// Request senden
fputs ($fp, "GET {$documentpath} HTTP/1.0\r\nHost: {$host}\r\n\r\n");
// Header auslesen
do {
$line = chop(fgets($fp));
} while (!empty($line) and !feof($fp));
// Daten auslesen
$result = Array();
while (!feof($fp)) {
$result[] = fgets($fp);
}
// Socket schliessen
fclose($fp);
// Ergebnis-Array zurückgeben
return $result;
}
Quelle im Crashforum:
https://www.klamm.de/crashforum/showpost.php?p=1041750&postcount=5