Øàáëîíû â PHP äëÿ ÷àéíèêîâ.

Óäîáíûé íîâîñòíîé ñàéò atinform.com. Èñêëþ÷èòåëüíî àêòóàëüíûå íîâîñòè ñòðàíû è ìèðà.

Øàáëîíû â PHP äëÿ ÷àéíèêîâ

  // 7 ñåíòÿáðÿ 2003 ãîäà

È ñíîâà çäðàâñòâóéòå. Äàâíî ÿ êàê-òî íå ïèñàë íè÷åãî ïóòíîãî, äàæå êàê-òî ñàìîìó íåïðèÿòíî. Òàê ÷òî ñðàçó ê òåìå. Äàâàéòå, òîâàðèùè óìíèêè, çàáóäåì òàêèå ñëîâà, êàê XML, XHTML è ïðî÷èé X…, è ïîãîâîðèì î âåùàõ, ïðèáëèæåííûõ ê ðåàëüíîñòè.

Ñóæåñòâóåò òàêàÿ «ïðîáëåìà», êàê ðàçäåëåíèå îôîðìëåíèÿ è ñîäåðæàíèÿ, è îòäåëåíèå èñïîëíÿåìîãî êîäà îò ïîëó÷àåìîãî html’ÿ. Ìóõè — òàì, êîòëåòû — òóò. Ãðóáî ãîâîðÿ, ïðîãðàììèñò ïðîãðàììèðóåò, äèçàéíåð äèçàéíèò è íèêòî íèêîìó íå ìåøàåò æèòü. À åñëè íàäî ïîìåíÿòü ÷òî-òî â îôîðìëåíèè, òî ñäåëàòü ýòî ñìîæåò îäèí îôîðìèòåëü, ñèðå÷ü äèçàéíåð, ñàìîñòîÿòåëüíî.

PHP õîðîø (õîðîø, ñîáàêà!) òåì, ÷òî ïîçâîëÿåò âñòðàèâàòü èñïîëíÿåìûå êîíñòðóêöèè ïðÿìî â html. Ïëþñû ïîíÿòíû. Ìèíóñû, íàïðèìåð: äîâîëüíî ñëîæíî ìåíÿòü îôîðìëåíèå â òàêîì êîäå: echo "<b>".$boldtext."</b>"; Ãëóïûé äèçàéíåð èñïóãàåòñÿ è óáåæèò, à óìíûé ïðîãðàììèñò ñêàæåò «ÿ âàì íå ãëóïûé äèçàéíåð, ÷òîáû åðóíäîé çàíèìàòüñÿ».

×åãî õî÷åòñÿ â èäåàëå? ×òîáû áûëà html-ñòðàíèöà, ãäå âñå, êàê ó ëþäåé: çäîðîâûå, ïîëíîöåííûå html-òýãè, à â òåõ ìåñòàõ, ãäå âûâîäèòñÿ èíôîðìàöèÿ, ñòîÿëè ñïåöèàëüíûå, ïðîñòûå, ïîíÿòíûå êàê äëÿ âåðñòàëüùèêà, òàê è äëÿ äâèæêà/ïðîãðàììèñòà óêàçàòåëè.

Òî åñòü, ÷òî-òî âðîäå òàêîãî:

<html>
<title>[TITLE]</title>
<body>
[TEXT]
</body>
<html>

Òàì, ãäå ñòîèò [TITLE], äâèæîê âûâîäèò çàãîëîâîê, òàì, ãäå [TEXT] — ñîîòâåòñòâåííî, òåêñò.

Ëåãêî è ïðîñòî. È âñå ñ÷àñòëèâû. È ýòî ïðàâèëüíî. Íî! Òóò è íà÷èíàåòñÿ ìàðàçì. Ñíà÷àëà ïèøåòñÿ «äâèæîê øàáëîíîâ», ÷òî-òî (ÿ óòðèðóþ) âðîäå òàêîãî:

$page = str_replace ("[TITLE]", $title, $page);
$page = str_replace ("[TEXT]", $text, $page);

Äàëüøå — áîëüøå. Îêàçûâàåòñÿ, ÷òî â íåêîòîðûõ ñëó÷àÿõ ýòîãî ìàëî. Íóæíî áîëüøå ôóíêöèé! Íàïðèìåð, íàì íóæíî ïðîâåðÿòü: åñëè [TEXT] ïóñòîé, òî âûâîäèòü îäíî, åñëè íå ïóñòîé, òî âûâîäèòü äðóãîå, òî åñòü, ôàêòè÷åñêè, ââîäèòü óæå ìèíèìàëüíóþ ëîãèêó îòîáðàæåíèÿ. È ìû ïèøåì ñóïåð-ïóïåð íàðîðî÷åíûé ÿçûê øàáëîíîâ. Íà PHP. È íàçûâàåì åãî SMARTASS (Super Mega And Revolutionary Totally Automatized Shablon System).

Äî òàêîé ñòåïåíè íàâîðî÷åííûé, ÷òî äèçàéíåð, ðàäè êîòîðîãî âñå çàòåâàëîñü, — ÷òîáû òîò ñìîã ñàì ìåíÿòü îôîðìëåíèÿ, óæå íå ìîæåò ñìåíèòü îôîðìëåíèå ïîêà ñïåöèàëüíî íå âûó÷èò ÿçûê øàáëîíîâ.

À òåïåðü ïîòðÿñåì ìîçãàìè è õîðîøåíüêî ïîäóìàåì, ÷òî æå ó íàñ ïîëó÷èëîñü. Ó íàñ ïîëó÷èëñÿ ôàêòè÷åñêè ÿçûê ïðîãðàììèðîâàíèÿ, íàïèñàííûé íà PHP, êîòîðûé ìîæíî âñòðàèâàòü â html-êîä è òåì ñàìûì ìåíÿòü ëîãèêó åãî (html-êîäà) îòîáðàæåíèÿ.

Ïîçäðàâèì äðóã äðóãà. Ó íàñ ïîëó÷èëñÿ PHP, íàïèñàííûé íà PHP. Âåëîñèïåä äëÿ âåëîñèïåäà. Îñìûñëåíèå ýòîãî ïðèäåò ïîçæå.

À òåïåðü âîçâðàùàåìñÿ ê ïåðâîìó ïðèìåðó.

<html>
<title>[TITLE]</title>
<body>
[TEXT]
</body>
<html>

Ïîìíèòå? Ñðàâíèì åãî ñî ñëåäóþùèì ïðèìåðîì è ïîïðîáóåì íàéòè êàðäèíàëüíûå ðàçëè÷èÿ.

<html>
<title><?=$title?></title>
<body>
<?=$text?>
</body>
<html>

×åì îí êàðäèíàëüíî îòëè÷àåòñÿ? Íè ÷åì. Ãëóïûé âåðñòàëüùèê ïîéìåò, åñëè åìó ñêàçàòü «íóæíî âñòàâèòü ïåðåìåííóþ text — ïèøè <?=$text?>». Âìåñòå ñ òåì, ýòî — íå ÷òî èíîå, êàê ñîêðàùåííàÿ çàïèñü îïåðàòîðà echo. È íèêàêîãî èíòåðïðåòàòîðà øàáëîíîâ íå íóæíî.

Òî åñòü ñëåäóþùèé ïðèìåð php-ñòðàíèöû âûâåäåò âñå, êàê íàäî:


<?php
$text = "Ýòî òåêñò";
$title = "Ýòî çàãîëîâîê";
?>

<html>
<title><?=$title?></title>
<body>
<?=$text?>
</body>
<html>

Äàëüøå — áîëüøå. Âûíîñèì âñå øàáëîíû â îòäåëüíûé ôàéë. È ïèøåì ïðîñòî:


<?php
$text = "Ýòî òåêñò";
$title = "Ýòî çàãîëîâîê";
include "template.html";
?>

Èäåÿ ïîíÿòíà?  ïðîöåññå èñïîëíåíèÿ php-ñêðèïòà íóæíûå ÷àñòè âûêëàäûâàåì â ïåðåìåííûå. Ïîòîì — èíêëþäèì html-ôàéë, ãäå â íóæíûõ ìåñòàõ ïðîñòàâëåíî <?=$èìÿ_ïåðåìåííîé?>.

Âåðñòàëüùèêó æå, ÷òîáû íàó÷èòüñÿ ðàáîòàòü ñ òàêèìè «øàáëîíàìè», íóæíî âñåãî 3–5 ìèíóò äëÿ îçíàêîìëåíèÿ ñ îñíîâàìè ñèíòàêñèñà PHP. È íå íàäî ó÷èòü êàêîé-òî íàâîðî÷åííûé ÿçûê øàáëîíîâ, êîòîðûé åìó áîëüøå íèêîãäà íå ïðèãîäèòñÿ.

Íó ÷òî ïëîõîãî â òàêîì âîò øàáëîíå ñòðàíèöû?

<html><title><?=strtoupper($title)?></title>
<body>

<? if ($text==""): ?>
Òåêñòà íåò, ïóñòî.

<? else: ?>
Ââåäåíûé òåêñò: <b><?=$text;?></b>

<? endif; ?>

</body>
</html>

Ïëþñû — íàëèöî. Äëÿ åãî âûâîäà íå íóæíî íèêàêèõ äîïîëíèòåëüíûõ âåùåé. Êðîìå PHP.

Âîò, ñîáñòâåííî, è âñå.

PS. Óâàæàåìûå óìíèêè. Äàííûé ñïîñîá «øàáëîíèçàöèè» äåéñòâèòåëüíî ïîêðûâàåò 95% íóæä ïðîñòûõ ñìåðòíûõ. Åñëè âàì ÷òî-òî íå íðàâèòñÿ — èäèòå, ïîáðåéòåñü áðèòâîé Îêêàìà.

 







Ïðè ïåðåïå÷àòêå èíôîðìàöèè äåëàéòå, ïîæàëóéñòà, ññûëêó íà íàø ñàéò (ëèáî ïîäåëèòüñÿ âêîíòàêòå, ãóãë+ èëè äåëèòåñü â îäíîêëàññíèêàõ ñòàòü¸é). Ñïàñèáî!

Èñòî÷íèê: www.wr-script.ru©, 2004-2026ã.

Äåëèòåñü ñ äðóçüÿìè â ñîöñåòÿõ. Àêòèâíûå êîììåíòàòîðû ïîëó÷àþò ñâåæèå ñêðèïòû è áåñïëàòíûå äîðàáîòêè îò WR-Script.ru!

Âåðíóòüñÿ ê ñòàòüÿì ïîìîùè WEB-ìàñòåðó

WR-Счётчик