ugrás a tartalomhoz

Html-be php vagy php-val html?

Hellhammer · 2011. Júl. 7. (Cs), 00.46
A tárgy talán értelmetlenül hangzik, bocsi.
Épp ezt-azt keresgettem google-n, amikor egy évekkel ezelőtti fórum-vitába botlottam, ahol erről (is) folyt a vita ... gondoltam, megkérdezem, ha nem nagy hülyeség:

Szóval: egy nagyon primitív példa alapján:
ha ezt a html kódot szeretném létrehozni php-vel:
<a href="http://www.valami.hu">kattints ide</a>
, abban az esetben, ha maga a hivatkozás címe egy dinamikus dolog = php változó tartalmazza:
$valtozo = "http://www.valami.hu";
akkor két mód is akad:
1.)
<?php
echo '<a href="'.$valtozo.'">kattints ide</a>';
?>
2.)
<a href="<?php echo $valtozo; ?>">kattints ide</a>
Elvileg melyik a jobb/helyesebb megközelítés??
Mert láttam már olyat, hogy echo "500sornyi html".$valtozo."további kétszáz sor kód";
ez véleményem szerint egyszerűbb a 2.) móddal megcsinálni, és persze az ellenkezőjére is lehetne példát adni...

Vagy, és persze nem az olyan, fent említett szélsőséges verzióknál, ahol adja magát, hanem egy átlag esetben ez mondhatni ízlés dolga?

Köszi a választ & bocs, ha hülyeséget kérdeztem!
 
1

Talán akkor a legszebb, ha a

bugadani · 2011. Júl. 7. (Cs), 00.57
Talán akkor a legszebb, ha a rövid nyitócímkék engedélyezve vannak. Ezesetben egyszerűsödik a 2-es válasz erre:

<a href="<?=$valtozo;?>">link</a>
Egyébként további lehetőség a printf() használata:

<?php
printf('<a href="%s">link</a>', $valtozo);
?>
Vagy pedig ott van a sablonrendszerek módija, a címkézés, majd str_replace jellegű, vagy annál kicsit okosabb eszközzel a szöveghelyettesítés... lassú, ámbár talán a legolvashatóbb megoldás. És mellé a legolvasmányosabb is, fölöslegesen sokat kell hozzá írni véleményem szerint.
Én jobb szeretek HTML-be ágyazni PHP-t, de vannak olyan esetek, amikor egyszerűen szebb fordítva. Jellemzően nagyobb bonyolultságú logika esetén hajlamosabb vagyok PHP-val generáltatni a HTML-t.

Ha mindenképp echo-t akarsz használni, ajánlom figyelmedbe a nemrég indult finomhangolós téma egyik hozzászólását: jobb, ha nem fűzöd össze a sztringet, hanem vesszővel választod el, mintha paraméterlistát adnál át az echonak.
Pl: a második sor "optimálisabb" az elsőnél:

<?php
echo '<a href="'.$valtozo.'">kattints ide</a>';
echo '<a href="',$valtozo,'">kattints ide</a>';
?>
Egyébként nem vagyok benne biztos, hogy így van, de az általad említett második változat logikusan gyorsabbnak tűnik. Az oka: nem kell plusz végtelen mennyiségű karaktert echoztatni. Pláne nem konkatenálni (bocsánat, összefűzni) n darab sztringet, mint mikor ponttal teszi ezt az ember.
2

Jogos

Poetro · 2011. Júl. 7. (Cs), 01.35
A kérdés jogos, és én a második megközelítést szorgalmazom, elvégre pont erre találták ki a PHP-t.
3

Ha másért nem, performancia

H.Z. v2 · 2011. Júl. 7. (Cs), 06.09
Ha másért nem, performancia szempontjából a 2. a jobb, de...
Ha az ember kulturált megjelenésű, olvasható kódot akar, akkor már nem ennyire triviális a helyzet, azt hiszem.
Tévedek?
5

Ha az ember kulturált

kuka · 2011. Júl. 7. (Cs), 09.26
Ha az ember kulturált megjelenésű, olvasható kódot akar, akkor már nem ennyire triviális a helyzet, azt hiszem.
Ezen a szemponton el szoktam elmélkedni. Elvégre a kódot ketten fogjuk olvasni: a PHP értelmező és én. Ezért nem mindent a PHP értelmező kedve szerint optimalizálok.

Jelen esetben, ha egyetlen hivatkozás egyetlen attribútumáról van szó, akkor a 2) változat vonzóbbnak tűnhet. De ha picit bonyolódik a dolog, a 2) változat hamar kényelmetlenné válik, ezért általában már eleve a 3) változattal kezdek:

// 1)
<?php
echo '<a href="',$valtozo,'" title="',$magyarazat,'">',$szoveg,'</a>';
?>

// 2)
<a href="<?php echo $valtozo; ?>" title="<?php echo $magyarazat; ?>"><?php echo $szoveg; ?></a>

// 3)
<?php
echo "<a href=\"$valtozo\" title=\"$magyarazat\">$szoveg</a>";
?>
4

A kérdés az, hogy a linket akarod kiíratni (1) vagy az urlt (2).

pp · 2011. Júl. 7. (Cs), 07.06
A kérdés az, hogy a linket akarod kiíratni (1) vagy az urlt (2). A HTML-en van a hangsúly (template/View/megjelenés) vagy a PHP-n (programkód/Control/vezérlés).

Ha innen nézem akkor ez a helyes megközelítés, ha onnan akkor meg amaz. Törekedni lehet és kell is a kettő szétválasztására, de lesz egy határ aminél tovább nem mész.

A kérdés fontos, de kontextus nélkül a válaszok értékelhetetlenek lesznek, kontextussal meg egyértelműek. Vagyis ha nincs kontextus, nincs érdemi válasz.

pp
6

Köszi mindenkinek az észrevételeket!

Hellhammer · 2011. Júl. 8. (P), 14.23
Köszi a válaszokat! igyekszem tanulni belőlük; + kuka 3.) megoldásának majd még utánanézek, mert ez a szinapszis kimaradt az életemből..

+akkor levonva a konklúziót: a megoldás feladatfüggő, ám a 2.)-es sokak szerint a preferáltabb.