Uy » Shaxs

Erkak har doim a'zolar ro'yxati php g. Php loyihalarini qo'llab-quvvatlashda ob_start-dan foydalanish


Assalomu alaykum, Xabr!

Bugun men Ajam veb-ustalarni php-da chiqish buferlashni ishlatishning turli xil oqlangan usullari bilan tanishtirmoqchiman. O'zlari uchun tajribali veb-ustalar bu erda foydali narsalarni topishlari mumkin. Garchi - kim biladi?

Barchangizga ma'lumki, php-da chiqish buferlash "ob_" dan boshlangan funktsiyalar to'plami tomonidan boshqariladi. Ulardan eng muhimi ob_start. Boshlanganda u keyingi chiqishni, ya'ni har qanday bosib chiqarish (), echo va hokazolarni to'playdi, keyinchalik html sahifa shaklida mehmonga beriladi. Va agar namoyish qilishni boshlashdan oldin biz buferlashni boshlagan bo'lsak, unda deyarli tayyor bo'lgan ushbu sahifada biz nihoyat biror narsa yaratamiz.


  Masalan, biz uchinchi tomon saytlariga havolalarni filtrlashni xohlaymiz.

Qadimgi avstralopitek boltasi kabi bizning forumimizda ko'plab spamerlar ayovsizliklar, bir qurolli bosqinchilar va siyosiy tashviqotlar bilan to'lgan joylarga tashrif buyuruvchilarni jalb qilishmoqda. Siz js-ni kuzatish bilan foydalanishingiz mumkin, ammo biz ushbu bog'lanishlarning barchasini quyidagi kabi o'zgartirishni xohlaymiz:

   "http://blackjack-hookers.com" \u003d\u003e "http://myoldforum.ru/redirect.php?url\u003dblackjack-hookers.com"

Usul eng samarali bo'lmasligi mumkin, ammo samarali. Biz redirect.php-ni filtr va qora varaq bilan yozdik va endi biz minglab forum sahifalaridagi havolalarni o'zgartirishimiz kerak. Ob_start va bir nechta oddiy iboralar bilan biz buni bir necha satrda bajaramiz:

F_callback funktsiyasi ($ bufer) ($ bufer \u003d preg_replace ("#http: // (www.)? Myoldforum \\ .ru / #", "/", $ bufer); : // ([^ "] *)" # "," # href \u003d "/redirect\\.php\\?url\u003d$1", $ bufer); $ buferni qaytaring;) ob_start (f_callback);

Endi ushbu kodni index.php boshida yoki server ko'rib chiqayotganda kiradigan boshqa faylni ulab, biz kerakli narsalarni olamiz.

Tarkibni shu tarzda o'zgartirish orqali biz vosita usullari doirasi bilan cheklanmaymiz. Bu juda qimmatli bo'lishi mumkin. Siz, masalan, plagin qo'shishingiz mumkin:

Funktsiya generate_plugin () (/ * biror narsa yaratish * /) funktsiyasi f_callback ($ bufer) (/*...*/ $ bufer \u003d str_replace ("", generate_plugin (), $ bufer); /*...*/ return bufer;) ob_start (" f_callback ");

Endi biz tarkibga qo'shgan joyimizda biz xohlagan narsaning paydo bo'lishi. Veb-sayt sahifasiga js vidjetini qo'shishning bitta usuli. Masalan, Yandex kartalari. Odatda bu qiyin emas, lekin ba'zida saytning egri yozilgan sahifa muharriri vidjetni buzib, tirnoq va qavslardan qochadi. Ko'rib turganingizdek, bu muammo osonlikcha hal qilinadi.

Chiqish buferi bilan ishlash uchun mo'ljallangan php vositasi boy va faqat ob_start bilan cheklanmagan. Yuqoridagi usullar ba'zi holatlarda keraksiz resurslarni talab qiladi va noqulay, chunki ular butun sahifada ishlaydi. Biz uning bir qismini faqat shablonga o'rash vositasini yaratish orqali, yovvoyi tabiatga chiqishni istamasligimiz mumkin, ammo biz buni tuzatishimiz kerak:

  (UMUMIY BIG JINSIY NARSA)

Siz barcha bu burilishlarni payqagan bo'lsangiz kerak: "men ko'tarilishni xohlamayman", "tirannozavr stuliga o'xshab eski", "egri yozilgan muharrir" ... Ideal dunyoda chiqish buferi atrofidagi qobiqlarga ehtiyoj qolmaydi. Ob_start yordamida bajarilishi mumkin bo'lgan barcha ishlarni nazariy jihatdan amalga oshirish mumkin. Ushbu uslub ba'zan chalkashliklarni loyiha kodiga kiritadi, ko'pchilik uning ma'nosini faqat ob_gzhandler-ga siqishni uchun chiqarishda bilishadi va boshqa holatlarda undan foydalanish xavfli deb hisoblashadi. Ammo ko'pincha, mahsulotni boshqarish shunchaki etarli emas.

Ayniqsa, chuqur qazishni xohlamasangiz.

Men tushunganimdek, sayt ramkadan foydalanmasdan yaratiladi? Va keyin tanish dasturchilar, mening barcha quloqlarim Yii doirasini o'rganishim kerakligini aytdi.

2) Men shunchaki so'ramoqchi edim .. Kursda ko'rib chiqiladigan Internet-do'konni yaratishga misol, bu ko'proq akademikmi? Haqiqiy tijorat loyihalari, ehtimol ramkalar yordamida yaratilgan bo'lishi mumkin bu standart kod shablonlari yordamida rivojlanish jarayonini sezilarli darajada optimallashtiradi. Ushbu savolga javob nima sodir bo'lishini aniqlashtirishga yordam beradi ... PHP Boshlash | Umumiy mantiqni tushunish uchun amaliyotni davom ettirish kerakmi?

Javob:

1) tanish narsa to'g'ri, men ham shunday deb o'ylayman. Ammo har qanday ramka, masalan, bilim talab qiladi. Men MVC tizimini amalda qurganimda, ramkalarda qo'llaniladigan yondashuvlarga amal qilishga harakat qildim. PHP Start (nazariya va amaliyot) tayyorgarlikga yordam beradi, shundan so'ng siz yii2 (yoki shunga o'xshash narsalarni) o'rganishni boshlashingiz mumkin.

Loyihaning ombor manzili:

  1-savol:

Men xatodan qutulolmayman:

Izoh: 10-qatorda /Users/Elios/Sites/Test/index.php-da aniqlangan aniqlanmagan _FILE_ dan foydalanish - "_FILE_" dan foydalanish.

Ayting-chi, nima bo'lishi mumkin?

Javob:

Oldin va keyin FILE   2 ta belgini yozish kerak _

__FILE__ PHP ning "sehrli" doimiylariga tegishli. Bu erda batafsil ma'lumot.

Barcha a'zolarni ko'rish

Tegishli ruxsatlarga ega bo'lsangiz, siz quyidagilarni ko'rishingiz mumkin A'zolar   ichkarisida yoki ichida. Ushbu havolalardan birini bossangiz, sizga olib keladi Barcha a'zolarni ko'rish   sahifa uchun, standart sahifa A'zolar ro'yxati   bo'lim. Shuningdek, a   forumda ro'yxatdan o'tgan a'zolarni qidirishingiz mumkin bo'lgan ushbu bo'limda sahifa.

Ustida Barcha a'zolarni ko'rish   sahifada siz forumda ro'yxatdan o'tgan barcha a'zolar ro'yxatini ko'rasiz. Bitta sahifada juda ko'p a'zo bo'lmasligi uchun sahifalar ishlatiladi. Agar bir nechta sahifa bo'lsa, qo'shimcha sahifalarni shu erdan tanlash mumkin. "A'zolar ro'yxati" sarlavhasi satrining o'ng tomonida ingliz alifbosining harflari ko'rsatiladi. Ushbu harflar ushbu harf bilan boshlangan ro'yxatdan o'tgan a'zolarning ismlariga o'tish uchun ishlatiladi, shunda ularni topish uchun bir nechta sahifalarni aylanib o'tishingiz shart emas. Bu turli xil harflardan boshlanadigan barcha foydalanuvchi nomlarini filtrlamaydi, aksincha langar vazifasini o'taydi, shuning uchun tanlangan harf bilan boshlanadigan foydalanuvchi nomlariga yo'naltirilasiz.

A'zolar ro'yxatidagi barcha foydalanuvchi nomlarini buyurtma qilish mumkin: Status (Onlayn / Offline), foydalanuvchi nomi, elektron pochta manzili, veb-sayt, ICQ, AIM, YIM, MSN, lavozimi, ro'yxatdan o'tgan sanasi va xabarlari. Ushbu ustun sarlavhalari bu ro'yxatni o'sish yoki pasayish tartibida tartiblash yoki hozirgi paytda ro'yxatni saralash uchun ishlatiladigan sarlavha ostidagi ustunlarni tartiblash uchun ishlatilishi mumkin bo'lgan havolalar.

A'zolarni qidirish

Ushbu bo'limda oddiy a'zolarni qidirish yoki qo'shimcha parametrlar yordamida natijalarni filtrlashni tanlash imkoniyati mavjud. A'zolarni ularning foydalanuvchi nomi, elektron pochta manzili, xabarchi laqabi, veb-sayti yoki lavozimiga qarab qidirishingiz mumkin.

Qidiruv natijalari siz qidirish maydoniga kiritgan shartlarga mos keladiganlarni ko'rsatadi. Agar biron bir qo'shimcha qidiruv parametrlari tanlansa, natijalar ham mos ravishda filtrlanadi. Qidiruv nafaqat to'liq so'zlarni to'liq mos kelishini, balki qidiruv shartlariga mos keladigan matnning har qanday qismlarini ham qidiradi. Shuning uchun, agar qidiruv atamasi siz qidirayotgan so'zning faqat bir qismini bildirsa, unda natijalar kutilganidan ko'proq natijalarni ko'rsatishi mumkin.

Ba'zi bir qo'shimcha qidiruv parametrlari foydalanuvchilar o'zlarining profillariga (xabarchi laqabi, veb-sayt) kiritmaslikni yoki ular ommaga oshkor qilmaslikni (elektron pochta) tanlashi mumkin bo'lgan ma'lumotlarga tegishli, shuning uchun ushbu parametrlardan foydalanish har doim ham olib kelmasligi mumkin. siz qidirayotgan natijalar. Qidiruv natijalari qidirishda ishlatiladigan harflar / so'zlar soniga nisbatan aniqroq bo'ladi.