Toon posts:

[PHP] File Handles

Pagina: 1
Acties:
  • 44 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo,

ik heb een soort spider/crawler gemaakt in php. Die loopt netjes door pagina's heen en open alle pagina's die op die pagina staan.
Dat werkt dus allemaal redelijk goed.

Maar nu heb ik dus een probleempje....
zodra er 1 url verkeerd is krijg ik continu deze error :
code:
1
Supplied argument is not a valid File-Handle resource in


Nu is het nog van belang dat alle URLs persee worden geopend, 1 meer of minder maakt ook niet uit.
Maar zodra ik deze error krijg blijf iet in mijn for loop hangen.
code:
1
2
3
4
5
  $fp = fopen($pag,"r");
  while (!feof ($fp)) {
    $inhoud = $inhoud . fgets($fp, 4096);
  }
  fclose ($fp);


Is er een morgelijkheid om direct uit de for loop te gaan zodra die deze fout geeft ??

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Zorg dat je, voordat je begint met de uitleesloop, vastgesteld hebt dat het bestand goed geopend is.

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


Verwijderd

Topicstarter
maar als ik voor mijn for loop dit zet :
code:
1
 if ($fp) ..

gaat ie toch gewoon de loop in.. en krijg ik toch die foutmelding :(

  • StratoFarmer
  • Registratie: April 2000
  • Laatst online: 20-08 22:02

StratoFarmer

Anke :*

schrijf eerst eens:
code:
1
$fp = fopen($pag, "r") or Die("openen is niet gelukt");

Dan zie je precies of dat gelukt is of niet.

en probeer eens een bestandsnaam in te vullen waarvan je zeker weet dat het MOET werken....dus gewoon hardcoded.

Mijn plekkie + Sympathisant van 'GoT voor Behoud der Nederlandsche Taal' [GvBdNT]


Verwijderd

Topicstarter
Dat is nou het probleem....
hij maakt zelf zijn eigen urls. Die ik op het formaat controleer.

En ik weet voor 99% zeker dat de urls bestaan dus...
Die 1% waar het fout gaat verpest het voor de rest die er achteraan komt.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:30
Ten eerste, waar zie jij een for-loop?

Ten tweede, ik zou de oplossingen van StratoFarmer en Janoz combineren. De uiteindelijke code wordt dan zoiets:

PHP:
1
2
3
4
5
6
7
8
@$fp = fopen($pag, "r");
if($fp)
{
    $inhoud = "";
    while (!feof ($fp))
        $inhoud .= fgets($fp, 4096);
    fclose ($fp);
}

[ Voor 16% gewijzigd door Soultaker op 17-02-2003 14:44 ]


Verwijderd

Topicstarter
Ik zal het eens proberen
sorry moest een while loop zijn, maar de gedachte er achter blijven hetzelfde

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:30
Verwijderd schreef op 17 februari 2003 @ 14:44:
sorry moest een while loop zijn, maar de gedachte er achter blijven hetzelfde
Maar ik vind het altijd wel als ik kan zien dat de topic starter tijd en moeite heeft besteed aan het formuleren van zijn probleem. Dat maakt mij ook weer een stuk bereidwilliger om een fatsoenlijk antwoord te formuleren.

Verwijderd

Topicstarter
Ok daar moet ik je helemaal gelijk in geven.
Nogmaals mijn verontschuldigingen

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Tja, is toch echt manual werk, hoor.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.