-Ïîèñê ïî äíåâíèêó

Ïîèñê ñîîáùåíèé â flashripper_net

 -Ïîäïèñêà ïî e-mail

 

 -Ñòàòèñòèêà

Ñòàòèñòèêà LiveInternet.ru: ïîêàçàíî êîëè÷åñòâî õèòîâ è ïîñåòèòåëåé
Ñîçäàí: 19.04.2008
Çàïèñåé: 861
Êîììåíòàðèåâ: 14
Íàïèñàíî: 873


Ââåäåíèå â PHP

Ñðåäà, 05 Íîÿáðÿ 2008 ã. 18:04 + â öèòàòíèê
Îðèãèíàë ñîîáùåíèÿ

Êîììåíòàðèè: êîììåíòàðèè

Ââåäåíèå â PHP

“CHIP / Ðîññèÿ”

Êàê è ëþáóþ âåùü â ýòîì ìèðå, ñàéò ìîæíî àâòîìàòèçèðîâàòü. È íå ïðîñòî àâòîìàòèçèðîâàòü, à äàòü ñàìîìó ñåáå âîçìîæíîñòü, áîëüøå íèêîãäà íå çàãëÿäûâàòü â åãî FTP-íåäðû, è ëèøèòü ïðîöåññ àäìèíèñòðèðîâàíèÿ âåá-ñàéòà áîëüøèíñòâà çàòðà÷èâàåìûõ ôèçè÷åñêèõ óñèëèé. ßçûê PHP â äàåò, ïðîñòî, îãðîìíûå âîçìîæíîñòè ïî ñîçäàíèþ “äâèæêà” äëÿ âåá-ñàéòà, è ïðè ýòîì, åãî ñèíòàêñèñ î÷åíü ïðîñò. Âïðî÷åì, îáî âñåì ïî ïîðÿäêó.

×òî, ñîáñòâåííî, òðåáóåòñÿ äëÿ ñîçäàíèÿ õîðîøåé ñèñòåìû àäìèíèñòðèðîâàíèÿ âåá-ñàéòà? Ñîâñåì íåìíîãî – ñåðâåð, êîòîðûé áû ðàçðåøàë èñïîëüçîâàíèå PHP-ñêðèïòîâ, è çíàíèå ñàìîãî ÿçûêà PHP, íà êîòîðîì ìû è áóäåì ïèñàòü “èíôîðìàöèîííûé äâèãàòåëü”.

Òàê æå, æåëàòåëüíî èìåòü â ñâîåì ðàñïîðÿæåíèè ñåðâåð Apache (http://apache.org), è èíòåðïðåòàòîð PHP (http://www.php.org) - è òî è äðóãîå, ðàñïðîñòðàíÿåòñÿ ñîâåðøåííî áåñïëàòíî, è ñâîáîäíî äîñòóïíî äëÿ çàãðóçêè èç ñåòè.

Èòàê, íà÷íåì?

Ââåäåíèå â PHP

Ñàì ÿçûê ïðîãðàììèðîâàíèÿ PHP, áåç èíòåðíåòà ñóùåñòâîâàòü íå ìîæåò. Îí ïîïðîñòó íå íóæåí íà îáû÷íîì êîìïüþòåðå – âòîðîé Windows íà íåì íå íàïèøåøü, è íè÷åãî âðàçóìèòåëüíîãî è ïîëåçíîãî – òîæå. Ðàçâå ÷òî, ÷àò äëÿ âíóòðåííåé ñåòè – ýòî äà. Íî çà òî â èíòåðíåòå, PHP ñ÷èòàåòñÿ îäíèì èç ñàìûõ ìîùíûõ ÿçûêîâ, êîòîðûé ñòîèò íà îäíîé ëèíåéêå, ñ òåì æå Perl’îì.

PHP ÿâëÿåòñÿ óäîáíûì, è â òî æå âðåìÿ äîñòàòî÷íî ïðîñòûì ÿçûêîì. È óæ åñëè âàì äîâîäèëîñü ïèñàòü ïðîãðàììû íà Ñ èëè C++, c èçó÷åíèåì PHP ó âàñ è âîâñå íå âîçíèêíåò òðóäíîñòåé, òàê êàê ñèíòàêñèñ î÷åíü ïîõîæ.

Ëþáàÿ (äàæå ñàìàÿ ìàëåíüêàÿ) ïðîãðàììà íà PHP, äîëæíà íà÷èíàòüñÿ ñ îïåðàòîðà
<?php

è çàêàí÷èâàòüñÿ îïåðàòîðîì

?>

Åñëè ýòè îïåðàòîðû íå áóäóò ïðîñòàâëåíû â íà÷àëå è êîíöå ïðîãðàììû, ñåðâåð êîòîðûé áóäåò îáðàáàòûâàòü çàïðîñû, íå ðàñïîçíàåò êîä.

 PHP, êàê è â ëþáîì äðóãîì ÿçûêå ïðîãðàììèðîâàíèÿ, ïðèñóòñòâóåò âîçìîæíîñòü âñòàâêè êîììåíòàðèåâ – áåç ýòîãî íèêàê. Êîììåíòàðèè ïîðîé âûðó÷àþò ñàìîãî æå ðàçðàáîò÷èêà, íå ãîâîðÿ óæå î ïîëüçîâàòåëÿõ, êîòîðûå âîçìîæíî, áóäóò êîíôèãóðèðîâàòü ãîòîâóþ ïðîãðàììó - îíè íå äàþò çàïóòàòüñÿ â ñòðóêòóðå ïðîãðàììíîãî êîäà, è äåëàþò åãî áîëåå ÷èòàåìûì. Òåêñò êîììåíòàðèåâ â ïðîãðàììàõ íà PHP ñóùåñòâóåò äâóõ âèäîâ – îäíîñòðî÷íûé, è ìíîãîñòðî÷íûé. Ñîîòâåòñòâåííî, ñóùåñòâóåò è äâà òèïà óêàçàíèÿ êîììåíòàðèåâ. Ïðèìåð:

/* ìíîãîñòðî÷íûé

êîììåíòàðèé */

è

// îäíîñòðî÷íûé êîììåíòàðèé

 êîììåíòàðèÿõ ìîæåò íàõîäèòüñÿ ëþáîé òåêñò, áóäü òî äàæå êîä PHP, èëè “êèòàéñêèå êîëû”.  ëþáîì ñëó÷àå – ñåðâåð ïðè îáðàáîòêå ïðîãðàììû îïóñêàåò âñå ñòðîêè, ÷òî îòäåëåíû ñèìâîëàìè êîììåíòàðèåâ.

Ïåðåìåííûå â ïðîãðàììàõ íà PHP, îòäåëÿþòñÿ ñèìâîëàìè $. Íàïðèìåð, â ïðîãðàììå:
$name = “Ìèð”;

ïåðåìåííàÿ $name áóäåò ðàâíà çíà÷åíèþ Ìèð. À âûâåñòè çíà÷åíèå ïåðåìåííîé íà ýêðàí ìîæíî äâóìÿ ñïîñîáàìè:
echo $name;

è
print $name;

Íó, à êîä ïðîãðàììû, êîòîðàÿ âûâîäèëà áû ÷òî-íèáóäü, âðîäå “Ïðèâåò Ìèð!”, áóäåò âûãëÿäåòü âîò òàê:
$hello = “Ïðèâåò”;

$spacer = ” “;

$name = “Ìèð”;

$din = “!”;

echo $hello;

echo $spacer;

echo $name;

echo $din;

Ïðè÷åì, êàê âû, íàâåðíîå, óæå äîãàäàëèñü, èìåíà ïåðåìåííûõ âåùü ñîâåðøåííî íå ïîä÷èíåííàÿ ëîãèêå – íàïðèìåð, èìÿ ïåðåìåííîé $din ñîâåðøåííî íå ñîîòâåòñòâóåò åå çíà÷åíèþ. Ãëàâíîå, íå ïåðåïóòàòü èìåíà ïåðåìåííûõ ïðè ïîñòðîåíèè ïðîãðàììû.

Îñíîâíûìè ýëåìåíòàìè ëþáîé ïðîãðàììû, ÿâëÿþòñÿ ïåðåìåííûå. Èõ èíîãäà áûâàåò äàæå áîëüøå ÷åì èñïîëíÿåìîãî êîäà ïðîãðàììû. À êîãäà äåëàåòñÿ î÷åíü áîëüøîé ñêðèïò, êîòîðûé ñîäåðæèò áîëüøîå êîëè÷åñòâî ôàéëîâ, ÷àñòî ïðèõîäèòñÿ èñïîëüçîâàòü îäíó è òó æå ïåðåìåííóþ â êàæäîì ôàéëå. À åñëè çíà÷åíèå ýòîé ïåðåìåííîé âäðóã ïîíàäîáèòñÿ èçìåíèòü, òîãäà ïðèäåòñÿ ïåðåëîïà÷èâàòü êàæäûé ôàéë, ðåäàêòèðóÿ åãî? Íåïëîõî áûëî áû, åñëè áû ìîæíî áûëî âûâåñòè âñå ïåðåìåííûå â îäèí êîíôèãóðàöèîííûé ôàéë, íå òàê ëè? Òàê è ñäåëàåì. Íà ïðèìåðå íàøåé ïðîãðàììû, âûíåñåì âñå ïåðåìåííûå â ôàéë configuration.php3. À â òåêóùåì ôàéëå, îñòàâèì òîëüêî ïðîãðàììó, êîòîðàÿ òåïåðü ïðåâðàòèòñÿ â âîò òàêîé êîä:
require(“configuration.php3”);

echo $hello;

echo $spacer;

echo $name;

echo $din;

Òåïåðü íàøà ïðîãðàììà èùåò â ñàìîé ñåáå çàïðàøèâàåìûå ïåðåìåííûå, à åñëè òàêîâûõ íàéäåíî íå áóäåò, îíà îòïðàâèòñÿ â ïóòåøåñòâèå íà óêàçàííûé â ïåðâîé ñòðî÷êå ôàéë.

Íî ãëàâíûì ïðåèìóùåñòâîì PHP, ÿâëÿåòñÿ âîçìîæíîñòè âñòàâêè êîäà â web-ñòðàíèöó, íàðÿäó ñî ñòàíäàðòíûì HTML-êîäîì. Ýòî äåëàåò ÿçûê PHP î÷åíü ãèáêèì, è â òî æå âðåìÿ íåîáû÷àéíî óäîáíûì.  ýòîì, îí ìîæåò ñîïåðíè÷àòü ðàçâå ÷òî ñ òåõíîëîãèåé ASP (Active Server Pages), íî îíà, â îòëè÷èè îò ðàññìàòðèâàåìîãî ÿçûêà, ìîæåò èñïîëüçîâàòüñÿ òîëüêî íà ñåðâåðàõ, áàçèðóþùèõñÿ íà îñíîâå Windows NT.

Ïåðâûé äâèæîê

Òåïåðü âû óæå èìååòå ïðåäñòàâëåíèå î PHP, è ìîæíî ñäåëàòü ÷òî-òî áîëåå ïîëåçíîå, íåæåëè ïðîãðàììó, êîòîðàÿ âûâîäèò áàíàëüíîå “Ïðèâåò Ìèð!”. Çàéìåìñÿ ðàçðàáîòêîé íàøåãî äâèæêà.

Äëÿ íà÷àëà, íàïèøåì ïðîãðàììó, êîòîðàÿ áóäåò äîáàâëÿòü íåêîòîðûå ñòàòüè â áàçó òåêñòîâ, è âûâîäèòü ëþáîé èç óêàçàííûõ ôàéëîâ â îäíîì øàáëîíå. Âñå ýòî âûãëÿäèò î÷åíü ñëîæíûì, íî íà ñàìîì äåëå î÷åíü ïðîñòî. Ñíà÷àëà íàïèøåì íà HTML ôîðìó, îòêóäà ââåäåííûå äàííûå áóäóò ïåðåäàâàòüñÿ ïðîãðàììå íà îáðàáîòêó:
<form method=”POST” action=”add_text.php3″>

<p>Íàçâàíèå òåêñòà:<br>

<input type=”text” name=”text_name” size=”20″><br>

Òåêñò:<br>

<textarea rows=”12″ name=”text” cols=”53″></textarea><br>

<input type=”submit” value=”Submit” name=”Submit”></p>

</form>

Òåïåðü íàïèøåì ïðîãðàììó, êîòîðàÿ ââåäåííûå â ôîðìó äàííûå îáðàáîòàåò äîëæíûì îáðàçîì, è ñîõðàíèò â ïàïêó texts:
<?php

$filename = “$name”; /* óêàçûâàåì ñ êàêèì èìåíåì áóäåò ñîõðàíåí ôàéë. Èìåíåì ôàéëà, áóäåò ñëóæèòü íàçâàíèå òåêñòà, ââåäåííîå â ñîîòâåòñòâóþùåå ïîëå ôîðìû */

$fp = fopen(”texts/$text_name.txt”,”w+”) /* îòêðûâàåì ôàéë, à åñëè îí íå íàéäåí, äèðåêòèâîé “w+” óêàçûâàåì ÷òî åãî íàäî ñîçäàòü */

fputs($fp, “<b>$text_name</b><br>$text”); /* ñîõðàíÿåì ñ ó÷åòîì HTML-ôîðìàòèðîâàíèÿ òåêñò â áàçó òåêñòîâ */

fclose($fp); /* çàêðûâàåì ôàéë ïî çàâåðøåíèþ âñåõ ðàáîò */

?>

Âîò è âñå – ýòà ïðîãðàììà ñîõðàíèò âñå ââåäåííûå â ôîðìó äàííûå. Òåïåðü íàì íóæíî èõ âûâåñòè. Çäåñü íà ïîìîùü òîæå ïðèõîäèò PHP. Çà÷åì æå íàì ñîçäàâàòü îãðîìíîå êîëè÷åñòâî âåá-ñòðàíèö, äëÿ êàæäîãî äîêóìåíòà õðàíÿùåãîñÿ â áàçå òåêñòîâ, åñëè ëþáîé èç íèõ ìîæíî âûâåñòè â îäíîì øàáëîíå?

Ñîçäàåì HTML-ôàéë, è â ìåñòå, ãäå ïðåäïîëàãàåòñÿ âûâîä òåêñòîâ, ïèøåì ñëåäóþùèé PHP-êîä:
<?

$filename = “read/”.$open .’.txt’; // îòêðûâàåì óêàçàííûé òåêñò

if (file_exists ($filename)): // åñëè òàêîé ôàéë ñóùåñòâóåò…

$fd = fopen ($filename, “r”); // …îòêðûâàåì åãî…

$showtext = fread ($fd, filesize ($filename)); // è ñ÷èòûâàåì â ïåðåìåííóþ $showtext

fclose ($fd); // çàêðûâàåì ôàéë

echo ($content); // âûâîäèì òåêñò åñëè ôàéë íàéäåí, à åñëè íåò…

else: echo (”Óêàçàííûé òåêñò îòñóòñòâóåò â áàçå òåêñòîâ.”); // ïèøåì ÷òî òàêîãî ôàéëà íåòó

endif; // êîíåö öèêëà, è êîíåö ïðîãðàììû

?>

Âñå òàê – ïîäóìàåò ÷èòàòåëü – íî êàê æå óêàçàòü ôàéë? Î÷åíü ïðîñòî. Ïðåäïîëîæèì, ÷òî ïðèâåäåííûé âûøå êîä, íàõîäèòñÿ â ôàéëå read.php3.  ñòðîêå áðîóçåðà, ïðîñòî ïèøåì read.php3?open=èìÿ_ôàéëà_áåç_ðàñøèðåíèÿ.

Äóìàþ, âðÿä ëè êòî-òî ñòàíåò ñïîðèòü, ÷òî òàêîé ñïîñîá î÷åíü óäîáåí. Èíòåðåñíî, ÷òî â ôàéëå ìîæåò õðàíèòüñÿ íå îáÿçàòåëüíî òåêñò – ýòî ìîæåò áûòü è HTML-êîä, è êàêîé-òî äðóãîé ñêðèïò… ñëîâîì, âñå, ÷òî òîëüêî ìîæåò ðàçîáðàòü áðîóçåð èëè ñåðâåð.


ß ñåé÷àñ íàõîæóñü  ãîðîäå
Ìîé íàñòðîé Õîðîøèé
ß ñëóøàþ LastFm.Ru
äíåâíèêèLIci WP - WordPress crossposting plugin

 

Äîáàâèòü êîììåíòàðèé:
Òåêñò êîììåíòàðèÿ: ñìàéëèêè

Ïðîâåðêà îðôîãðàôèè: (íàéòè îøèáêè)

Ïðèêðåïèòü êàðòèíêó:

 Ïåðåâîäèòü URL â ññûëêó
 Ïîäïèñàòüñÿ íà êîììåíòàðèè
 Ïîäïèñàòü êàðòèíêó