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.
Przemysław R. pracownik
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}
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
Przemysław R. pracownik
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());
Sebastian Poddubiuk Freelancer
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 :)
Przemysław R. pracownik
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}
Sebastian Poddubiuk Freelancer
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
Przemysław R. pracownik
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
Sebastian Poddubiuk Freelancer
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
Przemysław R. pracownik
Temat: tworzenie plików .html poprzez PHP
Sebastian Poddubiuk:foreach też, składni PHP też, wiesz w zasadzie to korespondencja seryjna z Word-a wystarczy
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.
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
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
Daniel Częstki edytował(a) ten post dnia 17.02.12 o godzinie 15:14
<?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);
}
?>
