Toon posts:

[PHP/Apache] Fopen script werkt niet op beide servers

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

Verwijderd

Topicstarter
Heb een tijd geleden een script geschreven, waarmee ik content van een andere site afhaal en deze integreer in mijn site. Dit doe ik door middel van de fopen functie.
Nu werkt het op mijn oude (lokale) server allemaal gewoon goed. Op mijn nieuwe pc lukt het me echter niet om het werkend te krijgen, hier krijg ik steeds maar een gedeelte van de informatie te zien, het lijkt dus wel of hij halverwegen stopt.
Ik heb al heel wat instellingen in mijn php.ini gewijzigd, alleen nog geen goed resultaat kunnen boeken. Kan iemand me helpen?

phpinfo oude server: http://www.liesbospark.nl/phpversies/phpinfo()thuis.htm
phpinfo nieuwe server: http://www.liesbospark.nl/phpversies/phpinfo()nieuw.htm

  • igmar
  • Registratie: April 2000
  • Laatst online: 30-11 18:38

igmar

ISO20022

code ? meestal zijn dit soort dingen bugs in jouw code, en heeft het eigenlijk niks met PHP van doen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Er zijn nogal wat verschillen tussen PHP 4 en 5, daar was je van op de hoogte?
Daarnaast zou het handig zijn als je wat relevante code zou posten. Zoals je in onze Programming Beleid Quickstart kunt lezen verwachten we wat meer informatie dan je nu post. Zo mis ik specifieke foutmeldingen, wat je al hebt geprobeerd, gezocht en gevonden enzovoorts.

[ Voor 78% gewijzigd door RobIII op 02-04-2007 14:07 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 10:45
Heb ook wel eens vreemde dingen meegemaakt met fopen ondanks een goede configuratie, zelfs verbindingen die niet gelegd konden worden naar bepaalde netwerken e.d.
Met Curl werkte het echter wel altijd goed, is bovendien stukken uitgebreider.

http://nl2.php.net/curl
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
// create a new curl resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close curl resource, and free up system resources
curl_close($ch);

//


Verwijderd

Topicstarter
Excuses voor het gebrek aan info. Ik dacht echter dat de code niet echt nodig zou zijn, aangezien hij het op beide servers wel doet, maar op de nieuwe maar gedeeltelijk.
PHP:
1
2
3
4
5
6
7
8
<?php

$fh = fopen("http://www.hkc-utrecht.nl", "r");
$string = fread($fh, 155060);

echo("$string");

?>


Het probleem is dat ik maar een klein gedeelte van de site ophaal, dit is overigens de geheel gestripte versie van mijn script.

Ik ga dat curl ook even testen hier...

  • x-force
  • Registratie: Maart 2001
  • Laatst online: 05-01-2024
Je haalt nu eemalig maar 155060 aan lengte op. Wanneer je het nu eens in een lus doet?

PHP:
1
2
3
4
5
6
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);

bron: http://nl3.php.net/fread

VangenopBetaalwater.nl Het platform om ervaringen over betaalwater in Frankrijk te delen met andere karpervissers zodat iedereen kan vangen op betaalwater!


  • igmar
  • Registratie: April 2000
  • Laatst online: 30-11 18:38

igmar

ISO20022

Verwijderd schreef op maandag 02 april 2007 @ 14:32:
Excuses voor het gebrek aan info. Ik dacht echter dat de code niet echt nodig zou zijn, aangezien hij het op beide servers wel doet, maar op de nieuwe maar gedeeltelijk.
PHP:
1
2
3
4
<?php
$fh = fopen("http://www.hkc-utrecht.nl", "r");
$string = fread($fh, 155060);
?>
Helaas. fopen() mag nog steeds de data opsplitsen, en dat is hetgeen wat je ziet. Zie ook het commentaar uit de PHP manual page :
When reading from anything that is not a regular local file, such as streams returned when reading remote files or from popen() and fsockopen(), reading will stop after a packet is available. This means that you should collect the data together in chunks as shown in the examples below.
In PHP5 kun je ook stream_get_contents() gebruiken.

Verwijderd

Topicstarter
Op het eerste gezicht lijkt de curl functie te werken, ik moest hem wel even in mijn php.ini aanzetten. Ga hier verder mee aan de slag, bedankt alvast.

Update: Ik heb mijn probleem opgelost met de lus methode van x-force. Bedankt allemaal voor jullie hulp.

[ Voor 27% gewijzigd door Verwijderd op 02-04-2007 15:46 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Dit staat allemaal gewoon in de manual; pak die er de volgende keer maar bij, daar heb je meer aan dan aan een topic op GoT. :)

'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.

Pagina: 1

Dit topic is gesloten.