Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zapis wygenerowanej strony do pliku html, problemy z output buffering
Bombasarkadian
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


Witam,
Mam przygotowany skrypt działający w taki sposób:
  1. <?
  2. $query = "SELECT id FROM db";
  3. $result = mysql_query($query);
  4. while($cont=mysql_fetch_array($result))
  5. {
  6. $id = $cont['id'];
  7. echo $id.'<br>';
  8. }
  9. echo 'Skończono';
  10. ?>

No i tekst jaki otrzymuję po wykonaniu skryptu wygląda mniej więcej:
  1. 153
  2. 158
  3. 159
  4. Skończono


I na tym etapie potrzebuję zapisać wygenerowaną stronę (wraz ze znacznikami html'a wstawionymi poza skryptem) do pliku na serwerze.
Próbowałem w ten sposób
  1. <?
  2. ?>
  3. //Tutaj cała strona i skypt
  4. <?
  5. $var1 = date("mdhi");
  6. $outputname = $var1."output.html";
  7. $page = ob_get_contents();
  8. $fp = fopen($outputname,"w");
  9. fwrite($fp,$page);
  10. fclose($fp);
  11. ?>

Ale w zapisanym pliku nie mam znaczników html a z wygenerowanego przez skrypt kodu zapisuje tylko:
  1. 159 //Tylko ostatnia wartość zmiennej $id
  2. Skończono


Jakiej (jakich) funkcji użyć, żeby zapisać całe źródło?
Go to the top of the page
+Quote Post
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Po pierwsze to nie dziw się , że $id ma tylko ostatnią wartość skoro w pętli while nadpisujesz ją z każdym powtórzeniem nową wartością. Jeśli chcesz mieć wszystkie wartośąci to musisz z $id zrobić tablicę. Spróbuj tak:
  1. <?
  2. $query = "SELECT id FROM db";
  3. $result = mysql_query($query);
  4. $j=0;
  5. while($cont=mysql_fetch_array($result))
  6. {
  7. $id[$j] = $cont['id'];
  8. echo $id[$j].'<br>';
  9. $j++;
  10. }
  11. echo 'Skończono';
  12. ?>
Teraz wszystkie id masz zapisane w tablicy. Wyświetlić możesz to sobie np. tak:
  1. foreach($id as $i){
  2. echo $i.'<br />';
  3. }


Ten post edytował sadistic_son 24.04.2010, 14:55:00


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Bombasarkadian
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


Dzięki za podpowiedź, ale jak się okazało wcale tak nie muszę robić.
Problem był taki, że gdzieś w skrypcie niechcący mi się wstawiło jeszcze jedno ob_start.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 18:36