ugrás a tartalomhoz

PHP-vel generált HTML kód ronda

Anonymous · 2005. Dec. 29. (Cs), 12.01
Sziasztok!

Ti hogyan oldjátok meg azt, hogy a PHP-vel generált HTML kód szép legyen?

Pl.

így szeretném látni a generált HTML kódot:

<div>
    <span style="stilus">valami szöveg

        <span style"stilus2">szöveg
            asfsfdasf fsd fsd fsdf sdf dsf 
            fghfjhjutzt tzu etzui tizuiizu
        </span>

    </span>
</div>
Csak hát ugye ha echo-val kiírom, akkor egy más mellé teszi az összes sort, amin még egy \n-nel lehet segíteni, de akkor az össze sor a sor legelején kezdődik, úgy meg már nem lesz olyan szép. Igazából az lenne a megoldás, ha szétszedném a HTML-t meg a PHP-t, de kis oldalak esetén nem éri meg...
Szóval meg lehet valahogy oldani, hogy a generált HTML pontosan olyan legyen, ahogy én "megálmodom"?
 
1

\t

Táskai Zsolt · 2005. Dec. 29. (Cs), 12.03
az echo azt írja ki, amit te akarsz. például igen, használhatod a \n és a \t karaktereket. meg szóközöket. meg ami jól esik.
Tasi
2

template

Nagy Péter · 2005. Dec. 29. (Cs), 12.30
Ezen sokat dob, ha template-rendszert használsz. Ott ugye te írod a HTML-t és csak a szükséges változókat helyettesíted be.

Egyébként a whitespace karakterek (\r,\n,\t,stb.) valójában a kimeneted méretét növelik csak meg, tehát a PHP álltal előállított "ömleszett" kód a legoptimálisabb. Egy gép számára... De ugye jó esetben nem a kész site HTML-jét bújva dolgozol. Ha mégis ezt kell tenned, akkor meg jobb ha betöltöd egy erre hivatott szerkesztőbe, amitől már jogosan elvárhatod, hogy sytax highlighting és indent legyen benne.

Ha mégis "röptében" PHP-ból akarod csinálni (mer' pl. a user szerkesztheti egy részét az oldalnak, és a szerkesztő rosszul formáz), akkor nézz utána a Tidy extensionnek.
--
NP
3

HTML output formázó

janoszen · 2005. Dec. 29. (Cs), 12.39
Üdv!

Írtam egy HTML output formázót, amelyik a HTML kódot, feltéve, hogy nincs benne inline JS meg CSS meg hasonlók, gyönyörűen megformázza. Példaként nézd meg a www.kontenerpiac.hu oldalt.

Annyit kell tenni, hogy a kimenet írásának megkezdése előtt beinclude-olod és meghívod, majd a végén egy paranccsal üríted a buffert. Az echo-knak minden sor végén egy \n-t kell tartalmazniuk. A behuzást és a plusz sortöréseket a formázó rakja bele (mint a fenti példában).

A kódot nem tenném föl ide, mert nem olyan rövid, viszont magánba küldesz levelet, elküldöm.
4

tidy

zila · 2005. Dec. 29. (Cs), 15.03
Kiírás előtt át lehet futtatni a kódot a tidy-n http://www.w3.org/People/Raggett/tidy/

Output buffering-gel kis érvágással beilleszthető már kész alkalmazásokba is...

üdv,
Zila
5

Extension vs. native

janoszen · 2005. Dec. 29. (Cs), 18.09
Az én megoldásom native PHP. Persze, nem annyira jó, mint a Tidy, mert nem validálja a kódot és nem HTML cleanupot csinál, csak megformázza, de legalább nem kell hozzá extensiont telepíteni, csak az output buffering kell hozzá.
7

Forráskód

Bártházi András · 2005. Dec. 30. (P), 00.58
Én nem szoktam törődni a forráskód szépségével, szerintem nem éri meg (bár megoldástól függően igen ronda sem szokott lenni a végeredmény). Alapvetően az a véleményem, hogy a kódformázás beépítése az oldal generálásának sebességét (akár jelentősen) rontja, előny pedig nem sok származik belőle. Ha debuggolni akarok, akkor lehet jó, de akkor is segítség lehet a HTML Tidy Firefox kiterjesztés.

-boogie-
6

Sortörés a sztringben

Balogh Tibor · 2005. Dec. 29. (Cs), 21.20
A sztringliterálban nyugodtan használhatsz sortörést, szóközt vagy tab karaktert, ahogy neked tetszik, akár ' akár " karakterek között adod meg a kiírandó karaktereket, nem lassítja a szkripted futását.

<?php
echo "
<div>
    <span style=\"stilus\">valami szöveg";
Vagy hosszabb szöveg kiírásánál ki is kapcsolhatod a php-t.

...
?>
<div>
    <span style="stilus">valami szöveg</span>
</div>
<?php