Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

Jacek Szczepaniak web application
programmer

Temat: tworzenie plików .html poprzez PHP

hm...
czyli mamy dwie opcje dla rozwiazania problemu php lub szablon

zakladamy ze mamy czysty komp z zainstalowanym php (jest potrzebny dla obu rozwiazan)

szablon:
1. szukam i sciagam system szablonow
2. instaluje/uruchamiam szablon (co samo w sobie czasem budzi kolejne problemy)
3. pisze szablon
4. uruchamiam

php
1. pisze skrypt szablonu
2. uruchamiam

moim zdaniem - php wygrywa, zwłaszcza przy braku znajomosci szablonow, czy php.
poprawcie mnie, jesli sie myle (nie uzywam phptal'a) ale czy on daje mozliwosc zapisu wyniku do pliku? czy tez trzeba to recznie oprogramowac?

a tak naprawde, najlepiej i najszybciej - to postawic piwo kumplowi ktory sie na tym zna , za 10 min, bedzie gotowe.
8.02.2012, 17:39

Temat: tworzenie plików .html poprzez PHP

Jacek Szczepaniak:
moim zdaniem - php wygrywa, zwłaszcza przy braku znajomosci szablonow, czy php.
poprawcie mnie, jesli sie myle (nie uzywam phptal'a) ale czy on daje mozliwosc zapisu wyniku do pliku? czy tez trzeba to recznie oprogramowac?

podstawowy szablon PHPTala to xhtml + zmienne w postaci ${zmienna}
10.02.2012, 12:08

Jacek Szczepaniak web application
programmer

Temat: tworzenie plików .html poprzez PHP

ok, ale pytanie brzmialo - czy w ten sposob mozna wygenerowac pliki (tzn z samego szablonu)
czy tez jak podejrzewam - musisz to samemu oprogramowac ?Jacek Szczepaniak edytował(a) ten post dnia 10.02.12 o godzinie 13:56
10.02.2012, 13:56

Temat: tworzenie plików .html poprzez PHP

Jacek Szczepaniak:
ok, ale pytanie brzmialo - czy w ten sposob mozna wygenerowac pliki (tzn z samego szablonu)
czy tez jak podejrzewam - musisz to samemu oprogramowac ?


$tpl = new PHPTAL('template.xhtml');
file_put_contents($file, $tpl->execute());
10.02.2012, 16:52

Temat: tworzenie plików .html poprzez PHP

Przemysław R.:
Dawid Rokita:

Dla Ciebie to tylko "wyspecjalizowana klasa PHP", dla Andrzeja jest to AŻ "system szablonów" i aż "wyspecjalizowana klasa php". Armatę na muchę ?? po co ??

no myślałem że klasy są po to żeby ich używać i nie zastanawiać się za bardzo co jest w środku

a po co - a no żeby uniknąć sytuacji w której "projekt" się rozwija, a kod do generowania puchnie, Ja pytam po co? skoro są proste w użyciu narzędzia z których można skorzystać
Co do konieczności znania regex'ów:

Wystarczy użyć w szablonie

##imie##
##nazwisko##

a potem str_replace i po sprawie :)

ile kodu trzeba do tego żeby odczytać plik z dysku, podstawić dynamicznie wartości z array-a w odpowiednie miejsca (array to wynik z SELECT-a z bazy) i zapisać plik

stawiam piwo przeciw orzeszkom że taki PHPTal zrobi to w mniejszej ilości lini kodu niż gołe PHP
Zaś każdy ficzer jaki będziesz chciał obsłużyć tą różnice tylko pogłębi


<?php
/* Tu nasze dane */
$dane = array(
'plik1' => array(
'imie' => 'Guru z Singapuru',
'na' => 'TurboDymoMana'
),
'plik2' => array(
'imie' => 'Przemek',
'na' => 'PHPTal'
),
'plik3' => array(
'imie' => 'Sebastian',
'na' => 'Gole PHP'
)
);
/* A tu kod w PHP */
$szablon = file_get_contents('szablon.html');
foreach($dane as $plik => $wiersz)
{
$o = $szablon;
foreach($wiersz as $nazwa => $wartosc) $o = str_replace('{{'.$nazwa.'}}', $wartosc, $o);
file_put_contents('o/'.$plik.'.html', $o);
}
?>


Czekam na piwo :)
12.02.2012, 23:39

Temat: tworzenie plików .html poprzez PHP


$dane = array(
'plik1' => array(
'imie' => 'Guru z Singapuru',
'na' => 'TurboDymoMana'
),
'plik2' => array(
'imie' => 'Przemek',
'na' => 'PHPTal'
),
'plik3' => array(
'imie' => 'Sebastian',
'na' => 'Gole PHP'
)
);
$tpl = new PHPTAL('template.xhtml');
$tpl->values = $dane;
file_put_contents($file, $tpl->execute());


mniej kodu niż w gołym PHP a setki razy większe możliwości

*uwaga

w pliku template.xhtml odwołanie do zmiennej to: ${values/plik1/imie}
13.02.2012, 00:59

Temat: tworzenie plików .html poprzez PHP

Z tego co widzę to Twoje rozwiązanie generuje 1 plik.

Nie widzę za dużej różnicy.
$szablon = file_get_contents('szablon.html');
foreach($dane as $plik => $wiersz)
{
$o = $szablon;
foreach($wiersz as $nazwa => $wartosc) $o = str_replace('{{'.$nazwa.'}}', $wartosc, $o);
file_put_contents('o/'.$plik.'.html', $o);
}

require('tal.php');
$tpl = new PHPTAL('template.xhtml');
foreach($dane as $plik => $wiersz)
{
$o = $tpl;
$o->values = $dane;
file_put_contents('o/'.$plik.'.html', $o->execute());
}
Sebastian Poddubiuk edytował(a) ten post dnia 13.02.12 o godzinie 01:29
13.02.2012, 01:03

Temat: tworzenie plików .html poprzez PHP

Sebastian Poddubiuk:
Z tego co widzę to Twoje rozwiązanie generuje 1 plik.

Nie widzę za dużej różnicy.

różnica jest w tym co oferuje mechanizm szablonów i czego już nie musisz programować w PHP - tu tkwi siła tego rozwiązania
13.02.2012, 02:12

Temat: tworzenie plików .html poprzez PHP

różnica jest w tym co oferuje mechanizm szablonów i czego już nie musisz programować w PHP - tu tkwi siła tego rozwiązania

Ale trzeba się tego nauczyć...

Po 1. Podejdź do tematu od strony autora wątku czyli "laika" w PHP a nie od swojej gdzie znasz się na tym dobrze.

Po 2. Skąd w/w "laik" ma wiedzieć o czymś takim jak systemy szablonów, już nie wspominając o tym skąd ma wiedzieć jak tego czegoś ( z jego punktu widzenia ) używać.

Wspomniałeś że lepiej od początku pisać dobry kod bo jak się rozrośnie itp. Autor określił jasno co chce otrzymać.Sebastian Poddubiuk edytował(a) ten post dnia 13.02.12 o godzinie 08:01
13.02.2012, 07:38

Temat: tworzenie plików .html poprzez PHP

Sebastian Poddubiuk:
różnica jest w tym co oferuje mechanizm szablonów i czego już nie musisz programować w PHP - tu tkwi siła tego rozwiązania

Ale trzeba się tego nauczyć...
foreach też, składni PHP też, wiesz w zasadzie to korespondencja seryjna z Word-a wystarczy
Po 1. Podejdź do tematu od strony autora wątku czyli "laika" w PHP a nie od swojej gdzie znasz się na tym dobrze.

PHPTal czyli de fakto http://docs.zope.org/zope2/zope2book/AppendixC.html operuje tagami więc gdzie tu PHP?
Po 2. Skąd w/w "laik" ma wiedzieć o czymś takim jak systemy szablonów, już nie wspominając o tym skąd ma wiedzieć jak tego czegoś ( z jego punktu widzenia ) używać.

jest prostszy i łatwiejszy w używaniu od sieczki PHP + HTML, bo można edytować w edytorze HTML
Wspomniałeś że lepiej od początku pisać dobry kod bo jak się rozrośnie itp. Autor określił jasno co chce otrzymać.

używanie klasy nie jest dobrą praktyką programistyczną? ja zawsze myślałem że jakieś druciarstwo na kolanie pisane jest be
13.02.2012, 09:03

Daniel Częstki programista php,
webdeveloper

Temat: tworzenie plików .html poprzez PHP

SZABLON: szablon.shtml

<h1>{#tytul#}</h1>
<p>Jakas tresc i {#dodatkowa_zmienna#}.</p>



PHP: wynik.php

<?php
$aDane = array(
"plik_1" => array(
"{#tytul#}" => 'Oto jest tytuł pliku 1',
"{#dodatkowa_zmienna#}" => 'jakaś wstawiona zmienna',
),
"plik_2" => array(
"{#tytul#}" => 'Oto jest tytuł pliku 2',
"{#dodatkowa_zmienna#}" => 'jakaś wstawiona zmienna',
),
);

# wczytujemy szablon
$szablon = file_get_contents('szablon.shtml');

# tworzymy pliki
foreach ($aDane as $nazwapliku => $zmiana) {
# podmieniamy zmienne
$wynik = str_replace(array_keys($zmiana), array_values($zmiana), $szablon);

# zapisujemy pliki wynikowe
file_put_contents("{$nazwapliku}.html", $wynik);
}
?>
Daniel Częstki edytował(a) ten post dnia 17.02.12 o godzinie 15:14
17.02.2012, 13:19



Wyślij zaproszenie do