Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapis wygenerowanej strony do pliku html
Forum PHP.pl > Forum > Przedszkole
Bombasarkadian
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?
sadistic_son
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. }
Bombasarkadian
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.