Mam następujący problem - otóż mam na stronie kilkanaście ramek, do których zawartość pobierana jest z innych stron przez cURL. Problem polega na tym, że w co 8 ramce (czyli przy co 8 połączeniu CURL) zamiast pełnej pobranej strony, wyświetla się tylko kilka pierwszych linijek z pliku, czasami poprzedzając to frazą typu "33da6", "12498" itd.

Błąd nie zależy od adresu strony, występuje zawsze co 8 połączenie, czyli 7 pierwszych stron jest pobranych i wyświetlonych w całości, tu następuję właśnie ucięcie pobranej strony tylko do kilku pierwszych linijek, po czym znów następne 7 jest prawidłowe i przy kolejnej sytuacja się powtarza.

Informacje o stronach i ich adresy są wcześniej pobierane z pliku do zmiennej, i tu żadnych błędów nie ma. Oto kod odpowiedzialny za wyświetlenie stron w ramkach:

  1. if(!isset($_GET[wtf])){
  2. for($i=0;$i<count($strona[nazwa]);$i++){
  3. echo '<h2>'.$strona[nazwa][$i].'</h2>';
  4. echo '<iframe src="index.php?wtf=index&strona='.$strona[nazwa][$i].'" style="width:100%;height:600px;border:1px dotted black;"></iframe><br /><br />';
  5. }
  6. }
  7.  
  8. if($_GET[wtf]=='index'){
  9. for($i=0;$i<count($strona[nazwa]);$i++){
  10. if($strona[nazwa][$i]==$_GET[strona]){
  11. $curlAdres = curl_init($strona[url][$i]);
  12. curl_setopt($curlAdres, CURLOPT_RETURNTRANSFER, 1);
  13. $curlStrona = curl_exec($curlAdres);
  14. curl_close($curlAdres);
  15.  
  16. // usuniecie javascript
  17. $curlStrona = preg_replace('#<script[^>]*>.*?</script>#is','',$curlStrona);
  18.  
  19. echo $curlStrona;
  20. }
  21. }
  22. }


A ucięte strony wyglądają mniej więcej tak:

  1. 12498
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <


  1. 32cf9
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="pl">
  4. <


Przy czym pierwsza linijka ("12498" itp) zawsze jest różna, przy kolejnych przeładowaniach strony nie powtarza się.


EDIT:

Problem rozwiązany. W konfiguracji Apache, w pliku conf\extra\httpd-default.conf zmieniłem pozycję "KeepAlive" z On na Off i wszystko działa jak należy. Temat do zamknięcia/kasacji.