Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parser szablonów
akurczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


Napisałem coś takiego:
  1. <?php
  2. $szablon = file_get_contents("szablon.html");
  3. preg_match("#{newsy}(.*?){/newsy}#si", $szablon, $znalezione);
  4. $tablica[0]["tytul"] = "Pierwszy news";
  5. $tablica[0]["tresc"] = "Treść pierwszego newsa";
  6. $tablica[1]["tytul"] = "Drugi news";
  7. $tablica[1]["tresc"] = "Treść drugiego newsa";
  8. $tablica[2]["tytul"] = "Trzeci news";
  9. $tablica[2]["tresc"] = "Treść trzeciego newsa";
  10. foreach($tablica as $wartosc) {
  11.    $temp = str_replace("{tytul}", $wartosc["tytul"], $znalezione[1]);
  12.    $newsy_array[] = str_replace("{tresc}", $wartosc["tresc"], $temp);
  13. }
  14. $newsy = join("", $newsy_array);
  15. $szablon = preg_replace("#{newsy}(.*?){/newsy}#si", $newsy, $szablon);
  16. echo $szablon;
  17. ?>


Szablon:
  1. <title>Newsy</title>
  2. </head>
  3. {newsy}
  4. <h2>{tytul}</h2>
  5. <p>{tresc}</p>
  6. {/newsy}
  7. </body>
  8. </html>


Wydaje mi się że jest to nieoptymalene, i nieprofesjonalnie napisane. Proszę o jakieś sugestje. Co powinienem w tym zmienić??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
akurczyk
post
Post #2





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


@Crozin: Fajne rozwiązanie, spróbuję.
Wrućmy do mojego parsera.
Zrobiłem w nim dwie pętle i niemoge się już w tym kodzie połapać:)
  1. <?php
  2. mysql_connect("----","----","----");
  3. mysql_query("SET NAMES utf8");
  4. mysql_query("SET CHARACTER_SET utf8_unicode_ci");
  5. $szablon = file_get_contents("szablon.html");
  6. preg_match("#{kategorie}(.*?){/kategorie}#si", $szablon, $znalezione);
  7. $zapytanie = mysql_query("SELECT identyfikator,tytul FROM kategorie");
  8. $kategorie = "";
  9. while($rekord = mysql_fetch_array($zapytanie)) {
  10.    $temp = str_replace("{nazwa_kategorii}", $rekord["tytul"], $znalezione[1]);
  11.    preg_match("#{fora}(.*?){/fora}#si", $temp, $znalezione2);
  12.    $zapytanie2 = mysql_query("SELECT identyfikator,tytul,opis FROM fora WHERE kategoria=\"".$rekord["identyfikator"]."\"");
  13.    $fora = "";
  14.    while($rekord2 = mysql_fetch_array($zapytanie2)) {
  15.        $temp2 = str_replace("{identyfikator_forum}", $rekord2["identyfikator"], $znalezione2[1]);
  16.        $temp2 = str_replace("{nazwa_forum}", $rekord2["tytul"], $temp2);
  17.        $fora .= str_replace("{opis_forum}", $rekord2["opis"], $temp2);
  18.    }
  19.    $kategorie .= preg_replace("#{fora}(.*?){/fora}#si", $fora, $temp);
  20. }
  21. $szablon = preg_replace("#{kategorie}(.*?){/kategorie}#si", $kategorie, $szablon);
  22. echo $szablon;
  23. ?>


Szablon:
Kod
<html>
<head>
<title>Newsy</title>
</head>
<body>
{kategorie}
<h2>{nazwa_kategorii}</h2>
{fora}
<h3><a href="forum.php?forum={identyfikator_forum}">{nazwa_forum}</a></h3>
<p>{opis_forum}</p>
{/fora}
{/kategorie}
</body>
</html>


Można to jakoś prościej??
Go to the top of the page
+Quote Post

Posty w temacie
- akurczyk   Parser szablonów   21.12.2008, 18:19:21
- - Riklaunim   Napisz to w Javie to będzie bardzo profesjonalne ...   21.12.2008, 18:41:25
- - l0ud   Istota działania jest zła. Systemy szabl...   21.12.2008, 18:53:39
|- - Riklaunim   Cytat(l0ud @ 21.12.2008, 20:53:39 ) I...   21.12.2008, 19:07:16
- - akurczyk   A co z optymalnością mojego skryptu??   21.12.2008, 19:18:13
- - Riklaunim   Duży ruch ci raczej nie grozi, więc i trudno mówić...   21.12.2008, 19:28:38
- - l0ud   [PHP] pobierz, plaintext <?phpIMHO obecność jęz...   21.12.2008, 19:33:34
- - akurczyk   Jeszcze jedno: Załużmy że w szablonie mam: Kod...   21.12.2008, 19:44:27
|- - Riklaunim   Cytat(l0ud @ 21.12.2008, 21:33:34 ) W...   21.12.2008, 20:11:46
- - Crozin   [PHP] pobierz, plaintext <?php}?>[PHP] ...   21.12.2008, 20:26:17
- - akurczyk   @Crozin: Fajne rozwiązanie, spróbuję. Wrućmy do mo...   21.12.2008, 21:25:38
|- - Riklaunim   Cytat(akurczyk @ 21.12.2008, 23:25:38...   21.12.2008, 22:28:43
- - Mize   Jeślibyś używał czystego PHP w szablonach to byłob...   21.12.2008, 21:37:18
- - Mize   To co wyżej napisałem to był przykład, i chyba nie...   21.12.2008, 22:38:44
- - l0ud   Riklaunim, nikt nie miał na myśli całkowitego unik...   21.12.2008, 22:43:15
- - Riklaunim   CytatOk, piszesz że szablony są kompilowane do czy...   21.12.2008, 23:00:03
- - akurczyk   Zroiłem tak jak mi radziliście. Fajnie t...   21.12.2008, 23:03:59
- - Crozin   CytatBo jak np. pisałem firmowego CRMa to osoba od...   21.12.2008, 23:06:11
|- - Riklaunim   Cytat(Crozin @ 22.12.2008, 01:06:11 )...   21.12.2008, 23:35:38
- - akurczyk   POMOCY!!   21.12.2008, 23:18:29
- - erix   CytatMam problem, więcej w drugim zapytaniu (dzies...   21.12.2008, 23:31:25
- - akurczyk   Niema żadnego błądu, tylko niewiem co napisać zoba...   21.12.2008, 23:59:00
- - Riklaunim   Coś jakby musisz umieścić zapytania o fora z danej...   22.12.2008, 00:17:54
- - akurczyk   http://www.codemaster2222.yoyo.pl/skrypt.php - nie...   22.12.2008, 10:47:23
- - Riklaunim   Pomyśl trochę. Jeżeli pobiera wszystkie fora to zn...   22.12.2008, 12:35:00
- - akurczyk   Jak to ma działeć to ja wie, przecież jak robiłem ...   22.12.2008, 12:52:56
- - Riklaunim   Po wierszu z $zapytanie2 możesz dać $tab...   22.12.2008, 13:52:17


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

 



RSS Aktualny czas: 2.10.2025 - 19:28