[php] Script werkt niet (meer)

Pagina: 1
Acties:

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
Heb hier een Gentoo Linux server draaien. Er draait al meer dan een maand de webserver apache op met een MySQL database en PHP ondersteuning (mod_php). Gisteren heb ik weer een emerge -u world gedaan en ook de module mod_php is geupdated. Alles werkt verder zonder problemen, behalve het volgende phpscript:
PHP:
1
2
3
4
5
6
7
8
9
        $url = "http://www.nu.nl/news.jsp?n=163105&c=12";
        $Start = "<br clear=\"all\">";
        $End = "<p><b>ZIE OOK:</b>";
        $file = fopen("$url", "r");
        $rf = fread($file, 20000);
        eregi("$Start(.*)$End", $rf, $samenvatting);
        fclose($file);
        $samenvatting = "$samenvatting[1]";
        echo $samenvatting;

Ik gebruik dit om gegevens van een videosite (videoland) af te halen voor eigen gebruik, of dat mag enzo weet ik niet en hier ligt ook het probleem niet.
In het voorbeeld hierboven wordt een nieuwsbericht van nu.nl afgehaald.
Voorheen werkte dit script wel (voor de update) en nu niet meer.. Op een andere server werkt het script ook.
Ik krijg gewoon helemaal niks te zien, geen output..
Ligt dit aan een verkeerde instelling in de php.ini? Of is er een andere oplossing voor't probleem?

(ik gebruik btw php 4.3.2)

  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 02:03
register globals is het toverwoord denk ik..check je php.ini maar eens

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
JMW schreef op 18 June 2003 @ 17:28:
register globals is het toverwoord denk ik..check je php.ini maar eens
Staat op "On"

  • ANdrode
  • Registratie: Februari 2003
  • Niet online
Probeer eerst eens in je php.ini de error reporting expliciet weer aan te zetten. Deze is bij een bepaalde versie (geloof 4.3) standaard uitgezet naar de browser. Hierdoor komen fouten alleen op een log op de server. In niet-development situaties is dit veel veiliger.

(tip: http://nl2.php.net/error_reporting lezen. waarschijnlijk kan je het ook met zo'n regel weer activeren.)

Als je dit weer hebt gerepareerd dan krijg je waarschijnlijk een foutmelding. Ik gok op safe mode, geen url fopen wrappers of iets dergelijks.

(als het eerst werkte dan moet het een verandering in config zijn die het sloopt, het script zelfs zou gewoon moeten kunnen blijven werken. Quoten van vars is inderdaad onnodig trouwens.)

[ Voor 16% gewijzigd door ANdrode op 18-06-2003 17:38 ]


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

JMW schreef op 18 juni 2003 @ 17:28:
register globals is het toverwoord denk ik..check je php.ini maar eens
dit is best wel een onzinnige reply, aangezien TS hier helemaal geen gebruik maakt van globals / superglobals.

Probeer het eens zo, ik zie voorderest eigenlijk niet veel verkeerds aan dit script, behalve dat je een hoop van je variabelen onnodig quote. (wat weer enkele milliseconden scheelt in je script :P)

PHP:
1
2
3
4
5
6
7
8
9
        ERROR_REPORTING(E_ALL);
                                $url = "http://www.nu.nl/news.jsp?n=163105&c=12";
        $Start = '<br clear=\"all\">';
        $End = '<p><b>ZIE OOK:</b>';
        $file = fopen($url, "r");
        $rf = fread($file, 20000);
        eregi("$Start(.*)$End", $rf, $samenvatting);
        fclose($file);
        $samenvatting = $samenvatting[1];

[ Voor 56% gewijzigd door SchizoDuckie op 18-06-2003 17:40 ]

Stop uploading passwords to Github!


  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
Ik krijg niks geen errors, ook niet als ik ERROR_REPORTING(E_ALL); boven het script zet :/
Safe mode staat ook uit en fopen wrappers staat aan.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 23:14
Euhm, ik gok maar wat, maar misschien heeft nu.nl de layout van hun pagina ietsje veranderd waardoor het niet meer precies zo werkt als eerst en de regexp niet goed meer werkt?

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
Wilke schreef op 18 June 2003 @ 21:35:
Euhm, ik gok maar wat, maar misschien heeft nu.nl de layout van hun pagina ietsje veranderd waardoor het niet meer precies zo werkt als eerst en de regexp niet goed meer werkt?
Ehm: "Voorheen werkte dit script wel (voor de update) en nu niet meer.. Op een andere server werkt het script ook. "

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08

  • kroeske
  • Registratie: Mei 2000
  • Laatst online: 25-03 11:35
en safe_mode staat Off?

Verwijderd

en allow fopen uri of id?

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
safe_mode = Off
allow_url_fopen = On

http://jnx-neo.mine.nu/php.txt
Daar staat mn php.ini...

Op verzoek een phpinfo() :)
http://jnx-neo.mine.nu/info.php

[ Voor 26% gewijzigd door JnX op 19-06-2003 12:31 ]


Verwijderd

Ik moet zeggen dat een phpinfo() output wel iets makkelijker te lezen zou zijn...

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Nou, zoek eens eens uit wat er mis gaat dan he :)

Krijg je uberhaupt die file wel binnen, probeer hem eens helemaal te printen?

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
Hmm.. ik probeer nu de hele site uit te lezen. Het werkt wel, maar hij haalt niet de hele site binnen, maar een klein deel.

Gebruik de volgende php-code:
PHP:
1
2
3
4
5
6
        $url = "http://www.nu.nl/news.jsp?n=163105&c=12";
        $file = fopen($url, "r");
        $rf = fread($file, 20000);
        fclose($file);
        echo $rf;
        ERROR_REPORTING(E_ALL);

Hij haalt de site dus wel op, maar op een of andere manier niet volledig dus :/

Oke, update:
Heb nu ook een andere site op nu.nl geprobeerd: http://www.nu.nl/news.jsp?n=163517&c=10
Ook deze haalt ie niet helemaal binnen. Als ik vervolgens de broncode van beide sites in word paste en het aantal tekens (incl spaties) laat tellen zie ik dat ie bij beide na 2609 tekens stopt :?

[ Voor 29% gewijzigd door JnX op 19-06-2003 12:44 ]


  • simon
  • Registratie: Maart 2002
  • Laatst online: 06-05 09:17
ERROR_REPORTING(E_ALL); kun je die niet beter bovenaan zetten ipv ergens midden in?

|>


Verwijderd

Waarom gebruik je geen while loop om de site helemaal binnen te halen ? Dat lijkt me sowieso wat netter dan een gigantische fread() te gebruiken...

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
Verwijderd schreef op 19 June 2003 @ 12:42:
Waarom gebruik je geen while loop om de site helemaal binnen te halen ? Dat lijkt me sowieso wat netter dan een gigantische fread() te gebruiken...
Maar dat heeft niet met het probleem te maken.. Met mn vorige php-install werkte dit script namelijk wel en op andere servers werkt het ook.

Verwijderd

Gebruiken die andere servers dezelfde software als dat jij gebruikt? Dezelfde php.ini?

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
Ik heb geen idee, het is niet mijn server.. Maar omdat het daar wel werkt en bij mij niet, ga ik er vanuit dat er of een andere versie van php draait of ze een andere php.ini gebruiken (of beiden).

Verwijderd

Heb je de mogelijkheid om die server waarop het wel werkt een bestand aan te maken met daarin:

PHP:
1
2
3
<?php
phpinfo();
?>


En dat vervolgens te bekijken?

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
Jah, dat is mogelijk.. Maar ik weet niet of de beheerder (die ik goed ken) daarmee instemd als ik die hier post...

Hij gebruikt iig een oudere versie: 4.2.3

[ Voor 17% gewijzigd door JnX op 19-06-2003 13:06 ]


Verwijderd

Oke, ik heb hier lokaal een server runnen van Apache 2.0.46, PHP 4.3.2 als module en nog de andere meuk erbij. Bij mij haalt bovenstaande script ook maar een gedeelte binnen, gebruik ik echter:

PHP:
1
2
3
4
5
6
7
8
9
<?
        $url = "http://www.nu.nl/news.jsp?n=163105&c=12"; 
        $file = fopen($url, "r"); 
        while ($rf = fread($file, 20000)) {
            $out .= $rf;
        } 
        fclose($file); 
        echo $out; 
?>


Dan werkt het perfect...

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 11-04 17:07
waarom zitten we hier eigenlijk in NOS ipv P&W :?

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
SF3, je bent een HELD :D
Die werkt bij mij ook, en mn andere script werk op deze manier ook!!

Alleen snap ik nog niet waarom het op die andere manier bij de nieuwe versie van PHP niet werkt :?

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
SWINX schreef op 19 June 2003 @ 13:14:
waarom zitten we hier eigenlijk in NOS ipv P&W :?
Omdat het probleem hem eigenlijk zit in het programma PHP zelf en de code op een oudere versie van PHP wel werkt..

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

JnX schreef op 19 juni 2003 @ 13:17:
[...]

Omdat het probleem hem eigenlijk zit in het programma PHP zelf en de code op een oudere versie van PHP wel werkt..
dan had het beter in SA gepast
maar toch lag het wel aan je code, dus PW ;)

  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08
Erkens schreef op 19 juni 2003 @ 14:34:
[...]

dan had het beter in SA gepast
maar toch lag het wel aan je code, dus PW ;)
Het ligt voor een deel aan mn code.. Want waarom werk die eerste (zogenaamde foute) wel op een andere server dan?
Pagina: 1