Willkommen in der Webstatt
User-1 am 03.03.06 13:47

Wir (ich und Sucker) möchten von hier das Kinoprogramm auslesen, ähnlich wie bei dieser Community. Ich habe von der Community folgendes Script bekommen, was allerdings eine Fehlermeldung produziert.

Script:
<?
$woischsher = "http://www.kinokempten.de/programm.html";
$wobeginnds = "<u>Unser Kinoprogramm</u></h3>";
$woischsend = "- Colosseum Center Kempten<br>";

$deszeigsarlhalt = implode(file($woischsher));

$deszeigsarlhalt = substr($deszeigsarlhalt,
strpos($deszeigsarlhalt, $wobeginnds),
strpos($deszeigsarlhalt,
$woischsend)-strpos($deszeigsarlhalt, $wobeginnds)+strlen($woischsend));

echo $deszeigsarlhalt;
?>


Fehlermeldung: (>live)
Warning: file(): URL file-access is disabled in the server configuration in /data/wwwcust/cs4-1/html/inc/kinoprogramm.inc.php on line 11

Warning: file(http://www.kinokempten.de/programm.html): failed to open stream: no suitable wrapper could be found in /data/wwwcust/cs4-1/html/inc/kinoprogramm.inc.php on line 11

Warning: implode(): Argument to implode must be an array. in /data/wwwcust/cs4-1/html/inc/kinoprogramm.inc.php on line 11


Die Fehlermeldung lässt auf irgendein Serverseitiges Problem schließen, aber ganz schlau werd ich daraus nicht. Was läuft falsch?

netcup.de Warum gibt es hier Werbung?
User-2 am 03.03.06 13:51

Anscheinend ist auf diesem Server die Möglichkeit deaktiviert, per file() auf externe Seiten zuzugreifen.

Quote
Warning: file(): URL file-access is disabled in the server configuration in /data/wwwcust/cs4-1/html/inc/kinoprogramm.inc.php on line 11


xyz-141el

User-3 am 03.03.06 13:51

http://php.benscom.com/manual/en/ref.filesystem.php#ini.allow-url-fopen
Diese Einstellung wird wahrscheinlich das Problem sein.

User-4 am 03.03.06 14:02

wenn ich das richtig vertehe, kann eingestellt werden welche urls ein dokument auslesen dürfen, oder?
damit es funktionieren würde müsste das kino also unsere url adden (oder wir das ganze von der fh seite holen) oder?

€ oder auch nicht, siehe

http://www.sheep24.de/sheep/kino.php

User-5 am 03.03.06 14:05

Nicht ganz. ;)

Auf xyz-187s Server ist momentan eingestellt, dass ein Script nicht auf einen externen Server zugreifen darf.
Das hat also nix mit dem anderen Server zu tun, auf den er zugreifen will.

User-4 am 03.03.06 14:06

also müssen wir das ändern (wie :D)
bzw könnnen wir das überhaupt, oder muss das der provider machen?

allow_url_fopen Off Off :(

Habs mal mit folgendem Code versucht:

if(ini_get('allow_url_fopen') != 1)
{
@ini_set('allow_url_fopen', '1');
if(ini_get('allow_url_fopen') != 1)
{
die("Please set the variable 'allow_url_fopen' to the value 1");
}
}


kommt natürlich: Please set the variable 'allow_url_fopen' to the value 1


:\

User-6 am 03.03.06 14:28

Hoster fragen?

User-4 am 03.03.06 14:45

Quote
Original von xyz-72
Hoster fragen?


jau hab grad ne anfrage geschickt, mal hoffen
die sponsorn uns die hp sogar :)

User-7 am 03.03.06 15:02

bau dir doch einfach ne eigene anfrage oder schau mal bei pear nach. ne eigene anfrage könnte ganz einfach so aussehen: (von php.net kopiert und leicht verbessert)
<?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);
}
?>


am besten nimmst du ne pear klasse wie z.b. die hier:
http://pear.php.net/package/HTTP_Client

User-5 am 03.03.06 15:16

Bist du sicher, dass fsockopen() nicht auf allow_url_fopen hört? xyz-48n wäre die Einstellung nämlich ziemlich sinnbefreit. ;)

User-8 am 03.03.06 15:22

Meiner Meinung nach funktioniert fsockopen auch ohne allow_url_fopen
Lege ich aber nicht meine Hand dafür ins Feuer.

User-7 am 03.03.06 15:33

Quote
Original von xyz-145
Bist du sicher, dass fsockopen() nicht auf allow_url_fopen hört? xyz-48n wäre die Einstellung nämlich ziemlich sinnbefreit. ;)

fsockopen müsste man m.E. extra deaktivieren

User-4 am 03.03.06 15:43

wenn ich diesen code verwende:

<?

$fp = fsockopen ("http://www.kinokempten.de/programm.html", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
fputs ($fp, "GET / HTTP/1.0\r\nHost: http://www.kinokempten.de/programm.html\r\n\r\n");
while (!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
?>


bekomm ich diese fehlermeldung

Quote


http://www.fosbos-community.de/?go=kinoprogramm2Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or serxyz-229e not known in /data/wwwcust/cs4-1/html/inc/kinoprogramm2.inc.php on line 6

Warning: fsockopen(): unable to connect to http://www.kinokempten.de/programm.html:80 in /data/wwwcust/cs4-1/html/inc/kinoprogramm2.inc.php on line 6
Permission denied (13)


http://www.fosbos-community.de/?go=kinoprogramm2

User-7 am 03.03.06 15:47

noch nie mit sockets gearbeitet?
ok...
<?php

$fp = fsockopen ("www.kinokempten.de", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
fputs ($fp, "GET /programm.html HTTP/1.0\r\nHost: www.kinokempten.de\r\n\r\n");
while (!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
?>
so müssts gehen

User-4 am 03.03.06 15:50

ne, hab ich noch nicht *duck*

hm nice, funktioniert soweit

jetzt muss ichs nur noch schaffen einen bestimmten bereich auszulesen und dem dann ne andere formatierung zu geben :D

aber danke ;)

User-8 am 03.03.06 15:53

http://de2.php.net/manual/de/function.preg-match-all.php
http://www.regenechsen.de ;)
Viel Spass beim Einlesen.

User-4 am 06.03.06 14:07

Habs jetzt doch über den von xyz-187 geposteten Code gelöst.

Erhalte jetzt folgende Ausgabe, wie schaffe ich es am besten die zu formatieren? Also zum einen hinsichtlich xhtml transitional zum anderen natürlich design?:

€ hier stand viel schwachsinn :D

User-5 am 06.03.06 14:24

Netter Code, aber ein Anhang hätt's auch getan.

Wie schon gesagt: RegEx ist dein Freund :)

Einlesen, parsen, formatieren, ausgeben.

User-4 am 06.03.06 14:27

hm naja, da ich denke dass die das ned oft ändern werden, mach ich das einfach mal so in der art

$a = str_replace("<br>", "<br />", $a);

halt jedes argument.. ^^

wenn ich regex brauch komm ich garantiert auf euch zurück ^^

€ was is schneller, wenn ich den text 20mal durch str_replace laufen lass, oder das ganze mit 2 arrays und preg_replace löse?

User-5 am 06.03.06 15:19

Für statische Ersetzung reicht str_replace() und bevor du mit RegEx drangehst, lerne es bitte.
Gewöhnlich sieht ein RegEx nämlich so aus:
/Suchmuster/Modifier
Das Suchmuster wird von "alphanumerischen" Zeichen (/,#,|,-,+,...) eingefasst. Das Verhalten wird von den Modifiern gesteuert.

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt