/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Meget output i PHP giver problemer
Fra : Martin Persson


Dato : 10-01-03 00:00

Hej NG

Jeg har et php script som skriver ca. 1600 linjer html kode ud vha et
loop. Hver linje er på ca 350 tegn.
Men det gør den kun nogle gange, andre gange skriver den at siden ikke
kan vises (The page can not be displayed). Dette sker typisk efter man
trykker refresh en eller flere gange.

Jeg ved ikke om det er php eller apache den er gal med eller om det er
noget helt tredje, men det er meget ustabilt.

Jeg bruger php 4.3.0 og apache 1.3.23 og IE6 og det hele køres lokalt.

Det skal siges at hvis jeg sætter den til at skrive færre end 300
linjer virker det umiddelbart fint.

Er der nogen der har et forslag til en løsning på mit problem.

På forhånd tak.
Martin


 
 
Niels Andersen (10-01-2003)
Kommentar
Fra : Niels Andersen


Dato : 10-01-03 08:22

Martin Persson wrote in <kuur1vc11a8ptlu2g6ed1pr7ndatoma0f1@4ax.com>:
> Men det gør den kun nogle gange, andre gange skriver den at siden ikke
> kan vises (The page can not be displayed). Dette sker typisk efter man
> trykker refresh en eller flere gange.

Hvor lang tid går der inden den siger det?

Måske er det fordi der går lang tid uden browseren får noget fra serveren...

--
Mvh.
Niels Andersen
http://myplace.dk/articles/getpost/?lang=da

Lars Dybdahl (10-01-2003)
Kommentar
Fra : Lars Dybdahl


Dato : 10-01-03 09:19

Der er flere muligheder:

1) Din tråd bliver dræbt. Standard indstillingen er max 30 sekunders
køretid, og er sat således for at forhindre enkelte scripts i at tage
unormalt meget server performance, og hvis dit script overskrider dette,
bliver det dræbt.
2) Du har output buffering slået til, og det tager unormalt lang tid før
denne buffer tømmes. Hvis dette er tilfældet, så prøv at køre uden output
buffering.
3) Du laver en gigantisk beregning og kommer først med data til sidst. Prøv
at få tidsforbruget ned eller prøv at komme med data undervejs.
4) Fejlen har ikke sammenhæng med antal linier - det er kun noget du tror
lige nu...

Jeg håber at du har nogle hints her.

Hilsen,

Lars Dybdhal.

Martin Persson wrote:

> Hej NG
>
> Jeg har et php script som skriver ca. 1600 linjer html kode ud vha et
> loop. Hver linje er på ca 350 tegn.
> Men det gør den kun nogle gange, andre gange skriver den at siden ikke
> kan vises (The page can not be displayed). Dette sker typisk efter man
> trykker refresh en eller flere gange.
>
> Jeg ved ikke om det er php eller apache den er gal med eller om det er
> noget helt tredje, men det er meget ustabilt.
>
> Jeg bruger php 4.3.0 og apache 1.3.23 og IE6 og det hele køres lokalt.
>
> Det skal siges at hvis jeg sætter den til at skrive færre end 300
> linjer virker det umiddelbart fint.
>
> Er der nogen der har et forslag til en løsning på mit problem.
>
> På forhånd tak.
> Martin

--
Freelance programmør
Programmering mod timebetaling

Martin (10-01-2003)
Kommentar
Fra : Martin


Dato : 10-01-03 09:58

>Der er flere muligheder:
>
>1) Din tråd bliver dræbt. Standard indstillingen er max 30 sekunders
>køretid, og er sat således for at forhindre enkelte scripts i at tage
>unormalt meget server performance, og hvis dit script overskrider dette,
>bliver det dræbt.
>2) Du har output buffering slået til, og det tager unormalt lang tid før
>denne buffer tømmes. Hvis dette er tilfældet, så prøv at køre uden output
>buffering.
>3) Du laver en gigantisk beregning og kommer først med data til sidst. Prøv
>at få tidsforbruget ned eller prøv at komme med data undervejs.
>4) Fejlen har ikke sammenhæng med antal linier - det er kun noget du tror
>lige nu...
>
>Jeg håber at du har nogle hints her.
>

Jeg er ret sikker på at det ikke en timeoutfejl. Explorer skriver
nemlig fejlen næsten med det samme, dvs. ca efter 1 sekund. Det er
ikke et script der tager lang tid at køre, og som sagt virker det en
gang imellem. Når det virker tager det måske 2 sekunder så står alle
data på skærmen.

Hilsen Martin

Niels Andersen (10-01-2003)
Kommentar
Fra : Niels Andersen


Dato : 10-01-03 10:16

Martin wrote in <af2t1v4o0206f94uqosp90q07c7pgjqta2@4ax.com>:
> Jeg er ret sikker på at det ikke en timeoutfejl. Explorer skriver
> nemlig fejlen næsten med det samme, dvs. ca efter 1 sekund.

Kan vi få en url så vi selv kan "lege"?

Du kan også prøve med en anden browser, som giver nogle "rigtige"
fejlmeddelelser. De fleste andre browsere fortæller nemlig lidt om hvad der
er galt, i stedet for bare at brække sig.

--
Mvh.
Niels Andersen
http://myplace.dk/articles/getpost/?lang=da

Peter Binderup (10-01-2003)
Kommentar
Fra : Peter Binderup


Dato : 10-01-03 11:03

"Lars Dybdahl" <lars@dybdahl.dk> wrote in message news:3e1e81e2$0$11004$edfadb0f@dread12.news.tele.dk...
> Der er flere muligheder:
> 2) Du har output buffering slået til, og det tager unormalt lang tid før
> denne buffer tømmes. Hvis dette er tilfældet, så prøv at køre uden output
> buffering.

Eller bruge output buffering med gz_handler (http://www.php.net/manual/en/function.ob-gzhandler.php)

Det er da et forsøg værd...

/Peter



Martin Persson (11-01-2003)
Kommentar
Fra : Martin Persson


Dato : 11-01-03 11:03

Jeg tror jeg har fundet ud af hvorfor det ikke funker.

Det jeg vil lave er en side hvor alle mine mp3 filer er listet i en
tabel med navn og sti samt noget javascript så man kan klikke på hver
enkelt sang.
Før jeg skriver data ud gemmer jeg ca. 100 tegn pr. linje i et array.
Dvs jeg bruger forholdsvis meget ram. Dette gøres for at sortere
efter titel.

Hvis jeg bare skriver linjerne eftehånden som jeg løber mine mapper på
disken igennem giver det ikke fejl.

Den hurtige læser vil sikkert mene at filerne kommer i alfabetisk
rækkefølge af sig selv. Det gør de også på nær en mappe, den kommer
først ligemeget hvad jeg gør. Jeg har prøvet at omdøbe den til alt
muligt men det virker ikke.

Jeg ved godt det er et helt andet emne men er der nogen der har et bud
på hvorfor den opfører sig sådan.

Her er lidt kode

<?

$dirs[0] = "E:\Musik"; // start bibliotek
$i = 0;
$files[0]= "";

print "<table>";

while($i < count($dirs))
{
$dir = $dirs[$i];
$id = opendir($dir);
   while (($item = readdir($id)) !== false)
   {
      if(($item != ".") && ($item != "..") &&
is_dir($dir."\\".$item))
      $dirs[] = $dir."\\".$item;
      else if(preg_match("|.*\.mp3|",$item))
      {
      $mydir = preg_replace("/'/","",$dir);
      $item = preg_replace("/'/","",$item);
      $name = preg_replace("/(.*)\.mp3/","$1",$item);
      print "<tr
ondblclick=\"javascript:addFile('".$mydir."\\".$item."')\"
bgcolor=\"#ffffff\" onmouseover=\"this.style.background = '#dddddd'\"
onmouseout=\"this.style.background =
'#ffffff'\"><td>".$name."</td></tr>\n";
      
      }
   }
$i++;
closedir($id);
}

print "</table>";

?>

Med Venlig Hilsen
Martin

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste