Íî÷íûå ìûòàðñòâà ñïåöà ïî ðàñêðóòêå, èëè ïîñòðàíè÷íûé âûâîä êîíòåíòà â áðàóçåð íà ïðèìåðå PHP ïðîåêòà àâòîðà



Íî÷íûå ìûòàðñòâà ñïåöà ïî ðàñêðóòêå, èëè ïîñòðàíè÷íûé âûâîä êîíòåíòà â áðàóçåð íà ïðèìåðå PHP ïðîåêòû àâòîðà 2003-07-26
Àâòîð: Äóõàíèí Ðîìàí www winner Ñòðàíèöû: [1]

Ïîëîâèíà âòîðîãî íî÷è, íåñêîëüêî äíåé íåäîñûïà... È âäðóã îçàðåíèå - íàêîíåö-òî ÿ ïîíÿë, êàêîé-òàêîé ñóïåð-ïóïåð ñêðèïò ìíå íóæåí äëÿ ðàñêðóòêè ìîåãî íîâîãî ñàéòà. Ñêàçàíî - ñäåëàíî, ñàæóñü... íåò íå ïèñàòü ýòîò ñóïåð-ïóïåð ñêðèïò :) Ïðîãðàììèñòû íàðîä ëåíèâûé, ñïåöû ïî ðàñêðóòêå òåì áîëåå (îòñþäà è áàííåðîîáìåííûå ñåòè, àâòîðåãèñòðàòîðû â êàòàëîãàõ è ïð. ëåíòÿéñêèå øòó÷êè).  îáùåì ëåçó íà Google è íà÷èíàþ ìåòîäè÷íî îáøàðèâàòü Ðóíåò â ïîèñêàõ òðåáóåìîãî. Ïðîõîäèò ÷àñ, äâà...  äóøó çàêðàäûâàþòñÿ ñìóòíûå ïîäîçðåíèÿ, ïëàâíî ïåðåðàñòàþùèå â óâåðåííîñòü, ÷òî òðåáóåìûé ìíå ñêðèïò â ïðèðîäå ëèáî íå ñóùåñòâóåò, ëèáî ñïðÿòàí íà ÷üåì-òî çàïîâåäíîì ëîêàëõîñòå ñ ïðàâàìè äîñòóïà 000.

Ðàçáèâàþ ñòîÿùóþ ïåðåä ñêðèïòîì çàäà÷ó íà íåñêîëüêî ñîñòàâíûõ è ìèíóò çà 15 ïèøó ðåàëèçàöèþ áîëüøèíñòâà åãî (ñêðèïòà) ôóíêöèé :) Ðàäîñòíî áåðóñü çà ñëåäóþùóþ ôè÷ó...  îáùåì, íåîáõîäèìî âñåãî-òî íàâñåãî îáåñïå÷èòü ïîñòðàíè÷íûé âûâîä êîíòåíòà. Òî åñòü, íàïðèìåð, èìååòñÿ 60 ñòàòåé è íóæíî ýòè ñòàòüè âûâîäèòü ïî 10 íà ñòðàíèöó è ïîñòðîèòü ìåíþ äëÿ îíîãî âûâîäà â âèäå "1 2 3 ..."

×åòûðå óòðà, îêðîìÿ çàâåòíîãî "LIMIT" â ãîëîâó íè÷åãî íå ïðèõîäèò. È äåëî äàæå íå â òîì, ÷òî ÁÄ ê ìîåìó ñêðèïòó íèêàêîãî îòíîøåíèÿ íå èìååò. Ñ ãîðå÷üþ ïîíèìàþ, ÷òî êâàëèôèêàöèÿ ïîòåðÿíà, ëó÷øèå ãîäû æèçíè ïðîæèòû âïóñòóþ è... èäó íà Google ;)
Ïîñëå... â îáùåì óæå íàñòóïèë ðàññâåò. Ê ýòîìó âðåìåíè ÿ ïîçíàêîìèëñÿ ñ êó÷åé ëèòåðàòóðû ïî äàííîìó âîïðîñó, íî âåçäå ñèòóàöèÿ òàê èëè èíà÷å ðàññìàòðèâàëàñü â êîíòåêñòå ðàáîòû ñ SQL, ëèáî ÿ ïîñòîÿííî íàòàëêèâàëñÿ íà êàêóþ-òî ðàñòèðàæèðîâàííî-çàóìíóþ ñòàòüþ ïðî "îòäåëåíèå àëãîðèòìà ïîñòðàíè÷íîãî âûâîäà îò êîíòåêñòà èëè-÷òî-òî-â-ýòîì-ðîäå" (ÈÌÕÎ, íèæåïðèâåäåííûå 7 ñòðî÷åê êîäà ýòó ïðîáëåìó ðåøàþò) â êîòîðîé íè÷åãîøåíüêè íå ïîíÿë... :( È âîò êîãäà ÿ óæå îò÷àÿëñÿ è ðåøèë ÷òî óòðî âå÷åðà ìóäðåíåå, íà êàêîì-òî äðåìó÷åì, çàðîñøèì ìõîì ôîðóìå (àäðåñ ê ñîæàëåíèþ êàíóë â Ëåòó - ïî êðàéíåé ìåðå ó ìåíÿ åãî íåò), íàòêíóëñÿ íà ïåðåïèñêó íåêîåãî âå÷íî èçâèíÿþøåãîñÿ Ïðîãðàììåðà è áåçóìíîãî è çëîáíîãî Ìîäåðàòîðà - òåìà ïåðåïèñêè áûëà ïîñâÿùåíà èìåííî ïîñòðîåíèþ ìåíþ äëÿ ïîñòðàíè÷íîãî âûâîäà. È ýòî áûëî èìåííî òî ÷òî íóæíî!

 îáùåì, íèæå ïî òåêñòó ÿ èñïðàâëÿþ íåñïðàâåäëèâîñòü: òåïåðü â Èíòåðíåòå åñòü ñòàòüÿ î òîì, êàê îáåñïå÷èòü ïîñòðîåíèå ìåíþ äëÿ ïîñòðàíè÷íîãî âûâîäà! Ïðîñòîé ðàáî÷èé êîä íà PHP, ñ ïîäðîáíûìè êîììåíòàðèÿìè. Íèêàêîé èçëèøíåé ôóíêöèîíàëüíîñòè òèïà ññûëîê "next page". Ñäåëàíî ñèå íàìåðåííî - íè ðàçó â æèçíè íå íàæèìàë íà "next" åñëè ìîæíî áûëî íàæàòü íà íîìåð ñòðàíèöû - à äàííàÿ ñòàòüÿ íàïèñàíà ñ öåëüþ äàòü âîçìîæíîñòü ïîíÿòü îñíîâíîé ïðèíöèï, ò.å. ÷åì ìåíüøå êîäà, òåì ëó÷øå (õîòÿ êíîïêà "next" è äîáàâëÿåòñÿ òðåìÿ ñòðîêàìè êîäà).

Ñîãëàøåíèÿ î êîììåíòàðèÿõ ê êîäó:

  • "Ñòàòüÿ" - ýòî íåêèé öåëîñòíûé áëîê äàííûõ (íå îáÿçàòåëüíî òåêñòîâûõ) êîòîðûé è âûâîäèòñÿ ïî íåñêîëüêî øòóê íà ñòðàíèöó (ýòî ìîãóò áûòü ñòàòüè, íîâîñòè, êàðòèíêè è ïð.)
  • "Ñòðàíèöà" - ýòî ñòðàíèöà :) íà êîòîðîé ðàñïîëîæåíî íåêîòîðîå êîëè÷åñòâî "ñòàòåé".

<?
$total_articles_number = 79; //îáùåå êîëè÷åñòâî ñòàòåé
$articles_per_page=10; // êîëè÷åñòâî ñòàòåé íà ñòðàíèöå
//ïîëó÷àåì êîëè÷åñòâî ñòðàíèö
$total_pages = ceil($total_articles_number/$articles_per_page);


// çàïóñêàåì öèêë - êîëè÷åñòâî èòåðàöèé ðàâíî êîëè÷åñòâó ñòðàíèö
 for ($i=0; $i<$total_pages; $i++){
// ïîëó÷àåì çíà÷åíèå $from (êàê $page_number) äëÿ èñïîëüçîâàíèÿ â ôîðìèðîâàíèè ññûëêè
 $page_number=$i*$articles_per_page;
// åñëè $page_number (ôàêòè÷åñêè ýòî ïðîâåðêà òîãî ÿâëÿåòñÿ ëè $from òåêóùèì) íå ñîîòâåòñòâóåò òåêóùåé ñòðàíèöå,
// âûâîäèì ññûëêó íà ñòðàíèöó ñî çíà÷åíèåì $from ðàâíûì $page_number
 if ($page_number!=$from) echo "<a href='".$PHP_SELF."?from=".$page_number."'> ".($i+1)." </a>";
// èíà÷å ïðîñòî âûâîäèì íîìåð ñòðàíèöû - äàííàÿ ñòðîêà íåîáÿçàòåëüíà,
// ïðîïóñòèâ åå âû ïðîñòî ïîëó÷èòå ëèíê íà òåêóùóþ ñòðàíèöó 
 else echo $i+1; // åñëè page_number - òåêóùàÿ ñòðàíèöà - íè÷åãî íå âûâîäèì (ññûëêó íå äåëàåì)
 }
?>
Òàêèì îáðàçîì, íà ýêðàíå áðàóçåðà ìû ïîëó÷èëè ÷òî-òî âðîäå "1 2 3 4 5 6 7 8", ïðè ýòîì URL (íà ìîåì êîìïüþòåðå, ïðè âûáðàííîé òðåòüåé "ñòðàíèöå") âûãëÿäèò òàê: https://localhost/ep/ep.php?from=20. Îáðàòèòå âíèìàíèå, íà òî, ÷òî ñòðàíèöå ïîä íîìåðîì "3" ñîîòâåòñòâóåò çíà÷åíèå from=20 òî åñòü îòñ÷åò âûâîäèìûõ ñòàòåé áóäåò âåñòèñü â äàííîì ñëó÷àå ñ 20-é.

Âîîáùå, êàê âû óæå ïîíÿëè, ïåðåìåííàÿ $from èãðàåò çäåñü êëþ÷åâóþ ðîëü. Îíà ó÷àñòâóåò â ïîñòðîåíèè ññûëîê íà êàæäóþ îòäåëüíóþ ñòðàíèöó (åñëè, êîíå÷íî, ìîæíî òàê âûðàçèòüñÿ :), è ñàìîå ãëàâíîå - äàåò íàì òî÷êó îòñ÷åòà äëÿ âûâîäà ñòàòåé. Íàïðèìåð (è íàâåðíÿêà âû ñäåëàåòå èìåííî òàê) óêàçàòåëè íà ñòàòüè (èëè ñàìè ñòàòüè ;) ìîæíî ïîìåñòèòü â ìàññèâ, ñ ïîñëåäóþùåé âûáîðêîé è âûâîäîì â áðàóçåð ïî 10 ñòàòåé, íà÷èíàÿ îò çíà÷åíèÿ $from.

Òî åñòü åùå ðàç èíûìè ñëîâàìè: âåñü îãîðîä ñîáñòâåííî è ãîðîäèëñÿ ðàäè òîãî, ÷òîáû äàòü ñêðèïòó äàííûå îòíîñèòåëüíî òîãî íà êàêîé "ñòðàíèöå" ñåé÷àñ íàõîäèòñÿ ïîñåòèòåëü è íà÷èíàÿ ñ êàêîãî íîìåðà "ñòàòüè" ñëåäóåò âûâåñòè çàäàííîå êîëè÷åñòâî ýòèõ ñòàòåé íà ñòðàíèöó - à ýòî è åñòü çíà÷åíèå ïåðåìåííîé $from. Ò.å. ïðè $from=20 âûâåäóòñÿ ñòðàíèöû ñ 21 ïî 30 (ýòî òàêæå çàâèñèò îò ðåàëèçàöèè âûâîäà è çíà÷åíèÿ ïåðåìåííîé $articles_per_page)

Âîò è âñå - ïðåäèñëîâèå äëèííåå ÷åì êîä :) À â Æèçíè âñåãäà òàê - ïðåëþäèÿ ãîðàçäî äëèííåå ÷åì ôèíàë ;)

Äóõàíèí Ðîìàí as RWinner winner@2winners.com

RWinner® âñå ïðàâà ñîõðàíåíû© Äîïóñêàåòñÿ ñâîáîäíîå êîïèðîâàíèå è ïóáëèêàöèÿ äàííîé ñòàòüè ïðè óñëîâèè îòñóòñòâèÿ êóïþð è ñ ñîõðàíåíèåì ñòðóêòóðû ãèïåðññûëîê. À åñëè ïî ïðîñòîìó, òî ïðè ïåðåïå÷àòêå ëèíêè íà ìîè ñàéòû ââåðõó ñòðàíèöû ÍÅ ÂÛÐÅÇÀÒÜ è ÍÅ ÏÅÐÅÌÅÙÀÒÜ âíèç ïî òåêñòó (íàïðèìåð â footer). Äàííûé êîïèðàéò, òàêæå, íåîáõîäèìî îñòàâèòü



Àâòîð: Äóõàíèí Ðîìàí
https://www.2winners.com/



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

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

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

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

WR-Счётчик