[PHP] File () van sourcepagina onmogelijk?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
Heya :)

Ik zit met een irritant probleem...
Ik moet dus een aantal waarden krijgen uit een pagina.. Deze pagina heb ik zelf met een kort scriptje opgeslagen op de server:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$dag = strftime ("%d%m%Y");
$handle = fopen("$dag.php", "x+");
fwrite($handle, 
"<?php
\$lines = file ('http://hiscore-web.runescape.com/aff/runescape/hiscorepersonal.cgi?username=nepica');
foreach (\$lines as \$line_num => \$line) {
  echo \"Regel #<b>{\$line_num}</b> : \" . htmlspecialchars(\$line) . \"<br>\";
}
?>
");  
fclose($handle);
?>


Zoals je misschien al wel hebt opgemerkt word elke dag als ik die pagina run een nieuw bestand op de server opgeslagen..

Maar nu wil ik van de output van dat script (zie voor output script: http://www.r3con.ath.cx/nick/datecompare/04102005.php) een aantal waarden halen...
Ik dacht dat dus mooi te kunnen doen met behulp van de volgende code:
code:
1
2
3
$nu    = strftime ("%d%m%Y");
$geval1  = "http://www.r3con.ath.cx/nick/datecompare/$nu.php";
$nr1       = file ($geval1);


en dan de waarden er gewoon zo uitplukken:

code:
1
echo "$nr1[6]"


Maar dan krijg ik de volgende zeer vervelende foutmeldingen
Warning: fopen(http://www.r3con.ath.cx/nick/datecompare/04102005.php): failed to open stream: Bad file descriptor in c:\server\apache\apache\htdocs\nick\datecompare\comparedate.php on line 12

Fatal error: Maximum execution time of 30 seconds exceeded in c:\server\apache\apache\htdocs\nick\datecompare\comparedate.php on line 13

Iemand enig idee waarom dit komt, en hoe ik het anders aan kan pakken?
Ik zit er nu namelijk al een paar uur me er blind op te staren, maar heb nog geen "eureka-moment" gehad ;)

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Waarschijnlijk is je url fopen wrappers disabled oid. Zie ook: http://nl3.php.net/manual...m.php#ini.allow-url-fopen

Even een vraagje. Waarom zou je iedere dag hetzelfde bestandje schrijven?

[ Voor 3% gewijzigd door Michali op 04-10-2005 18:47 ]

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

:X

In plaats van elke dag die dingen van de Runescape server te halen en op te slaan in een ander formaat doe je er veel beter aan om de pagina in te lezen met file_get_contents en vervolgens regular expressions te gebruiken om de waarden uit te lezen die je nodig hebt. Je bent nu nodeloos ingewikkeld aan het doen, ben ik bang...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
Michali schreef op dinsdag 04 oktober 2005 @ 18:46:
Waarschijnlijk is je url fopen wrappers disabled oid. Zie ook: http://nl3.php.net/manual...m.php#ini.allow-url-fopen

Even een vraagje. Waarom zou je iedere dag hetzelfde bestandje schrijven?
Url fopen wrappers -> allow_url_fopen On On (uit me phpinfo gehaald), dus volgensmij staan die niet uit...
Ik kan namelijk wel van gewone paginas file() doen, maar alleen van deze pagina niet...

En ik wil graag iedere dag hetzelfde bestandje schrijven zodat ik de stats van de ene dag met die van de andere dag kan vergelijken ;) (En het is dus niet iedere dag hetzelfde bestandje, anders was het idd nutteloos ;) )

@ -NMe- Zie ook wat ik hier 2 regels boven heb staan, dus waarschijnlijk gaat jouwn oplossing ook niet werken, omdat ook dat de stats real-time van de bronpagina haalt, en daar heb ik niets aan als ik het wil vergelijken met de dag van gisteren. Daarom juist sla ik het elke dag in een bestandje op ;)

[ Voor 13% gewijzigd door Enfer op 04-10-2005 18:56 . Reden: typo ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Problem? schreef op dinsdag 04 oktober 2005 @ 18:53:
@ -NMe- Zie ook wat ik hier 2 regels boven heb staan, dus waarschijnlijk gaat jouwn oplossing ook niet werken, omdat ook dat de stats real-time van de bronpagina haalt, en daar heb ik niets aan als ik het wil vergelijken met de dag van gisteren. Daarom juist sla ik het elke dag in een bestandje op ;)
Je snapt mijn punt niet. :P

Je kan het beter gewoon inlezen van die server, en vervolgens in het formaat gieten waar jij mee overweg kan door middel van een regexp. Vervolgens sla je het op zoals je wil. (Liefst in een database, maar een kommagescheiden in een bestand lukt ook wel.) Dan kun je er veel meer mee aanvangen dan je nu kan; nu moet je voor elke dag twee keer een pagina parsen. Eerst haal je hem van de RS server af en pas je hem aan en slaat hem op, en vervolgens als je hem nodig hebt, dan ga je hem weer aanpassen. Dat kan toch veel beter in één keer? En nogmaals, dan is een database de meest logische manier van opslag eigenlijk.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

En ik wil graag iedere dag hetzelfde bestandje schrijven zodat ik de stats van de ene dag met die van de andere dag kan vergelijken (En het is dus niet iedere dag hetzelfde bestandje, anders was het idd nutteloos )
Haal je bestandje eens via ftp op ipv via http. Dan zul je zien dat er gewoon een stukje script in staat. Jou 04102005.php zal morgen gewoon de scores van 5 oktober weergeven, net als 03102005.php gaat doen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
@ -NMe-

Eigenlijk is een database hiervoor ook veel handiger.. Maar ik ben niet zo "handig" in databases :+ , dus ik wil het liever PHP-only houden, anders kan ik weer veel tijd gaan besteden aan mysql leren, en daar heb ik even deze tijd geen zin aan ;)
Ik snap je punt volledig hoor, maar ik houd het liever @ PHP-only ;)

Dus.. is het mogelijk, en zoja hoe?
Janoz schreef op dinsdag 04 oktober 2005 @ 18:58:
[...]

Haal je bestandje eens via ftp op ipv via http. Dan zul je zien dat er gewoon een stukje script in staat. Jou 04102005.php zal morgen gewoon de scores van 5 oktober weergeven, net als 03102005.php gaat doen.
You've got a point.....
Hmmm, moet ik dat ook weer gaan oplossen 8)7 |:( }:O
Kan ik via php niet een hele pagina zeg maar opslaan? Echt puur source, en geen script?

[ Voor 50% gewijzigd door Enfer op 04-10-2005 19:06 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Problem? schreef op dinsdag 04 oktober 2005 @ 19:01:
@ -NMe-

Eigenlijk is een database hiervoor ook veel handiger.. Maar ik ben niet zo "handig" in databases :+ , dus ik wil het liever PHP-only houden, anders kan ik weer veel tijd gaan besteden aan mysql leren, en daar heb ik even deze tijd geen zin aan ;)
Ik snap je punt volledig hoor, maar ik houd het liever @ PHP-only ;)
Zoals ik al zei: zonder database kan het ook, met comma seperated files.
You've got a point.....
Hmmm, moet ik dat ook weer gaan oplossen 8)7 |:( }:O
Dat is op zich niet zo moeilijk. Je schrijft nu naar een dynamisch bestand (PHP) terwijl je statische data wil wegschrijven. Gewoon een HTML bestand maken die alle data bevat, en klaar. Maar dat is nog steeds geen nette oplossing, zie hierboven. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Problem? schreef op dinsdag 04 oktober 2005 @ 19:01:
You've got a point.....
Hmmm, moet ik dat ook weer gaan oplossen 8)7 |:( }:O
Kan ik via php niet een hele pagina zeg maar opslaan? Echt puur source, en geen script?
Deze vraag is eigenlijk best grappig (nofi). In je code staat ten eerste een stukje over het openen van een bestand en regels hier naartoe schrijven. Wat je wegschrijft is een stukje code dat een externe pagina inleest en op het scherm afdrukt. Als je dat nu eens omdraait.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
Ik ga wel aan mysql beginnen, te omslachtige en vervelende oplossingen om zo te lezen...

Toch allemaal bedankt...
Pagina: 1