Muški uvijek popis članova php g. Korištenje ob_start za podršku php projekata


Zdravo Habr!

Danas bih želio upoznati početnike s webmasterima na različite elegantne načine korištenja izlaznog međusobnog punjenja u php-u. Iskusni webmasteri za sebe ovdje vryat pronalaze nešto korisno. Iako - tko zna?

Kao što svi znate, puferiranje izlaza u php-u kontrolira skup funkcija koji započinje s "ob_". Najvažniji od njih je ob_start. Kad se pokrene, prikuplja naknadni ispis, to jest sve vrste print (), odjek i tako dalje, koji će se posjetitelju dati u obliku html stranice. A ako smo prije prikazivanja započeli s punjenjem, tada s ovom stranicom koja je gotovo spremna konačno možemo nešto stvoriti.


  Na primjer, želimo filtrirati sve veze na web stranice trećih strana.

Na našem forumu, drevan poput australijske sjekire, gomila se veliki broj neželjene pošte, namamljujući posjetitelje na mjesta ispunjena razvratom, jednooružanim banditima i političkom agitacijom. Možete koristiti js sa praćenjem, ali želimo promijeniti sve ove veze umjesto ove:

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

Metoda možda nije najučinkovitija, ali učinkovita. Napisali smo redirect.php s filterom i crnim listom, a sada moramo pretvoriti sve veze na tisućama stranica foruma. S ob_start i nekoliko regularnih izraza, to ćemo učiniti u samo nekoliko redaka:

Funkcija f_callback ($ buffer) ($ buffer \u003d preg_replace ("#http: // (www.)? Myoldforum \\ .ru / #", "/", $ buffer); $ buffer \u003d preg_replace ("# href \u003d" http : // ([^ "] *)" # "," # href \u003d "/redirect\\.php\\?url\u003d$1", $ buffer); vrati $ buffer;) ob_start (f_callback);

Sada, povezivanjem ovog koda na početku index.php ili neke druge datoteke kojoj poslužitelj pristupa prilikom pregledavanja, dobivamo ono što nam treba.

Promjenom sadržaja na ovaj način, nismo ograničeni na okvir mehanizama motora. To može biti vrlo vrijedno. Na primjer, možete dodati dodatak:

Funkcija generator_plugin () (/ * generira nešto * /) funkcija f_callback ($ buffer) (/*...*/ $ buffer \u003d str_replace ("", create_plugin (), $ buffer); /*...*/ return $ buffer;) ob_start (" f_callback ");

Sada, tamo gdje smo dodali sadržaj pojavit će se ono što smo željeli dobiti. Jedna je upotreba da na stranicu web stranice umetnete js widget. Na primjer, Yandex kartice. Obično to nije teško, ali ponekad krivo napisani uređivač stranica izbjegne navode i zagrade, razbijajući widget. Kao što vidite, ovaj je problem lako riješiti.

Php alat za rad s izlaznim međuspremnikom je bogat i nije ograničen na samo ob_start. Gore navedene metode u nekim su slučajevima nepotrebno velike i naporne, jer djeluju na cijeloj stranici. Dio toga možemo obraditi samo tako što u predlošku stvorimo omot oko generacije nečega što se ne želimo penjati u divljinu, ali trebamo to popraviti:

  (GENERATE BIG CRAZY THING)

Sigurno ste primijetili sve ove zaokrete: "Ne želim se penjati", "star kao stolica tiranozavra", "krivo napisan urednik" ... U idealnom svijetu, školjke oko izlaznog međuspremnika nisu potrebne. Sve što se može učiniti s ob_startom teoretski bi se moglo i bez njega. Ova tehnika ponekad unosi zbrku u šifru projekta, mnogi vide njeno značenje samo u davanju rezultata ob_gzhandleru za komprimiranje i smatraju da je njegova upotreba u drugim slučajevima opasna. Ali često upravljanje proizvodom jednostavno nije dovoljno.

Pogotovo ako se ne želite duboko ukopati.

Koliko razumijem, web stranica će se kreirati bez korištenja okvira? A onda su mi poznati programeri zujali da moram naučiti okvir Yii.

2) Htio sam samo pitati .. Primjer stvaranja internetske trgovine, koji se razmatra u toku, je li to akademskiji? Stvarni komercijalni projekti vjerojatno su stvoreni pomoću okvira, kao ovo uvelike optimizira razvojni proces korištenjem standardnih predložaka koda. Odgovor na ovo pitanje pomoći će vam razjasniti što se događa ... PHP Start | Da li se još uvijek vrijedi provesti kako bi se razumjela opća logika?

Odgovor je:

1) Poznata stvar je u pravu, i ja tako mislim. Ali svaki okvir zahtijeva, primjerice, obuku, znanje. Kad sam u praksi izgradio MVC sustav, pokušao sam slijediti pristupe koji se koriste u okviru. Budući da će vam PHP Start (teorija i praksa) pomoći u pripremi, nakon toga možete sigurno početi učiti yii2 (ili nešto slično).

Adresa spremišta projekta:

  Pitanje br. 1:

Ne mogu se riješiti pogreške:

Napomena: Upotreba nedefinirane konstante _FILE_ - pretpostavlja se "_FILE_" u /Users/Elios/Sites/Test/index.php na liniji 10

Reci mi, što bi moglo biti?

Odgovor je:

Prije i poslije SLIKA  treba napisati 2 znaka _

__FILE__ spada u "čarobne" konstante PHP-a. Više detalja možete pronaći ovdje.

Pogledajte sve članove

Pod uvjetom da imate odgovarajuća dopuštenja, to ćete moći vidjeti članovi  unos na ili u. Klikom na jednu od tih veza dovest ćete vas do Pogledajte sve članove  stranicu, zadana stranica za Popis članova  sekcija. Tu je i   stranici u ovom odjeljku, gdje možete tražiti članove registrirane na forumu.

Na Pogledajte sve članove  stranici, vidjet ćete popis svih članova registriranih na forumu. Stranice se koriste tako da na jednoj stranici nema previše članova. Kad postoji više stranica, dodatne stranice mogu se odabirati odavde. Na desnoj strani naslovne trake "Popisa članova" prikazano je svako slovo engleske abecede. Ta se slova koriste za preskakanje na korisnička imena registriranih članova koja započinju tim slovom, tako da ne biste morali prelistavati nekoliko stranica da biste ih pronašli. Ovo ne filtrira sva korisnička imena koja počinju s različitim slovima, već služi kao sidro, pa ćete biti usmjereni na korisnička imena koja počinju s odabranim slovom.

Sva korisnička imena na popisu članova mogu se naručiti prema: statusu (Online / Offline), korisničkom imenu, e-pošti, web mjestu, ICQ, AIM, YIM, MSN, poziciji, datumu registracije i postovima. Ovi naslovi stupaca su veze koje se mogu upotrijebiti za sortiranje popisa uzlaznim ili silaznim redoslijedom ili za izmjenu redoslijeda sortiranja stupca pod naslovom koji se trenutno koristi za razvrstavanje popisa.

Traži članove

Ovaj vam odjeljak omogućava jednostavno pretraživanje članova ili odabir filtriranja rezultata pomoću dodatnih parametara. Možete tražiti članove na temelju njihovog korisničkog imena, adrese e-pošte, nadimka glasnika, web mjesta ili položaja.

Rezultati pretraživanja prikazivat će podudaranja za pojmove koje unesete u polje za pretraživanje. Ako se odabere neki od dodatnih parametara pretraživanja, rezultati će se također filtrirati u skladu s tim. Pretraživanje ne traži samo podudaranje s cijelom riječju, već i dijelove teksta koji se podudaraju s pojmovima za pretraživanje. Iz tog razloga, ako pojam za pretraživanje predstavlja samo dio riječi koju tražite, rezultati mogu pokazati mnogo više podudaranja od očekivanih.

Neki dodatni parametri pretraživanja odnose se na podatke koje korisnici mogu odabrati da ne dodaju u svoj profil (nadimak messenger, web mjesto) ili mogu odabrati da ga ne otkriju javnosti (e-pošta), tako da upotreba tih parametara ne može uvijek prikazati rezultate koje tražite. Rezultati pretraživanja bit će precizniji što više slova / riječi koriste u pretraživanju.