Tworzenie pliku php z zawartością


(BLEKBLEKBLEK) #1

Witam, mam problem bo tworzę bazę produktów i przy dodawaniu produktu do bazy mysql chce dodać stronę która się tworzy za pomocą funkcji fopen();, lecz tam jako wartość można dać tylko zmienną, a mi chodzi o to aby dodać całą stroną z wyglądem i przy danych takie jak specyfikacja dodać zmienne, a pisanie całej strony pod jedną zmienna to się tak chyba nie robi


(Pablo_Wawa) #2

Ja nic z tego co opisałeś nie zrozumiałem (tj. nie wiem, na czym konkretnie polega Twój problem). Może podaj fragment kodu, określ jak jest do tej pory, a jak chciałbyś (przykładowo) żeby to wyglądało?


(BLEKBLEKBLEK) #3

Robię taki jakby sklep internetowy. Mam tam zakładkę produkty, gdzie je dodaje poprzez panel administracyjny produkty do bazy danych i wyświetlają się one w zakładce produkty. I teraz do każdego produktu chcę dodać link “więcej”, gdzie poprzez kliknięcie przechodzi do specyfikacji produktu. Chodzi dokładnie mi o to, że dodając do bazy danych produkty chce jednocześnie utworzyć stronę ze specyfikacją do tego produktu. Strony się tworzy za pomocą polecenia fopen(“nazwa_strony.php”,“w”); i edycja fwrite(“nazwa”,"$tresc"); i  w zmiennej tresc mozna wpisac co ma zawierac, a ja chce zeby strona zawierała całą stronę główną z innym środkiem i innymi zmiennymi do specyfikacji.


(Pablo_Wawa) #4

Jeśli działasz z bazą danych (tu: MySQL), to czemu część danych sklepu chcesz trzymać w osobnych plikach HTML (zawierających to “więcej” o danym produkcie)? Nie lepiej jest te dane (zawartość strony HTML) trzymać w bzie danych (w zmiennej typu TEXT lub BLOB)?

Poza tym, jak używasz fopen, to po otwarciu pliku (tu: do zapisu) otrzymujesz uchwyt (handler) i to jego używasz w funkcji fwrite, a z tego co napisałeś, robisz to błędnie - powinno być tak:

$fp = fopen("nazwa_strony.php","w");















fwrite($fp,$tresc);















fclose($fp);

I potem w treści właściwej strony (pokazującej to “więcej”) robisz w miejscu, gdzie te indywidualne dane maja się pokazywać, po prostu include(“nazwa_strony.php”) zaczytujący stosowny kod (ale jako PHP).


(pr0100) #5

Zamiast funkcji żywcem wyjętych z c++ użyj

$content = file_get_contents (‘http://www.example.com/’);

file_put_contents (‘foo.txt’, $content);

 

 

nie, nie robi się tak. Niebezpieczne, niewygodne, trudne do testowania, takie rozwiązanie nie ma żadnych plusów.

 

 

czemu BLOB?


(Pablo_Wawa) #6

Dokładnie, te funkcje upraszczają sprawę w PHP.

 

A czemu BLOB? Dla danych binarnych (np. zdjęć), ale jeśli to ma być tylko tekst, to wystarczy TEXT (do 64 KB) lub MEDIUMTEXT (jeśli więcej - do 16MB).


(slepcu) #7

ale zaraz… ty chcesz tworzyć plik.php od tego towaru?

Jeśli dobrze zrozumiałem to stąpasz po grząskim gruncie.