Ob_start - გამომავალი ბუფერირების ჩართვა. ob_start-ის გამოყენება php პროექტების მხარდაჭერისას ცუდი ძიება php დაწყება

დაიწყე ძებნაარის ბრაუზერის გამტაცებელი, რომელიც რეკლამირებულია სხვა უფასო ჩამოტვირთვების საშუალებით და დაინსტალირების შემდეგ ის შეცვლის თქვენს ბრაუზერის მთავარ გვერდს start-search.com search.yahoo.com.

start-search.com-ის მთავარი გვერდი აჩვენებს რეკლამებს და დაფინანსებულ ბმულებს თქვენი ძიების შედეგებში და შესაძლოა შეაგროვოს საძიებო ტერმინები თქვენი საძიებო მოთხოვნებიდან. start-search.com-ის გატაცება გამოიყენება სარეკლამო შემოსავლების გასაზრდელად, ისევე როგორც blackhat SEO-ს გამოყენებისას, რათა გაზარდოს საიტის გვერდის რეიტინგი ძიების შედეგებში.

დაიწყეთ ძებნა, ეს ტექნიკურად არ არის ვირუსი, მაგრამ ის ავლენს უამრავ მავნე თვისებას, როგორიცაა rootkit-ის შესაძლებლობები ოპერაციულ სისტემაში ღრმად ჩაკეტვისთვის, ბრაუზერის გატაცება და ზოგადად უბრალოდ მომხმარებლის გამოცდილებაში ჩარევა. ინდუსტრია მას ზოგადად მოიხსენიებს, როგორც "PUP" ან პოტენციურად არასასურველ პროგრამას.
Start Search არის რეკლამით მხარდაჭერილი (მომხმარებლებმა შეიძლება ნახონ დამატებითი ბანერი, ძიება, pop-up, pop-under, ინტერსტიციული და ტექსტური ბმული რეკლამები) ბრაუზერის ჯვარედინი დანამატი Internet Explorer-ისთვის (BHO) და Firefox/Chrome-ისთვის (მოდული) და ნაწილდება სხვადასხვა მონეტიზაციის პლატფორმების მეშვეობით ინსტალაციის დროს. ბრაუზერის გაფართოება მოიცავს სხვადასხვა ფუნქციებს, რომლებიც შეცვლიან ბრაუზერის ნაგულისხმევ ან მორგებულ პარამეტრებს, მათ შორის მთავარ გვერდს, ძიების პარამეტრებს და ზოგიერთ შემთხვევაში შეცვლიან Internet Explorer-ის დატვირთვის დროის ზღვარს, განათავსებენ დაბლოკვის ფაილს Firefox-ში, რათა კონკურენტმა პროგრამულმა პროგრამამ არ შეცვალოს მისი პარამეტრები. ასევე გამორთეთ ბრაუზერის კონტენტის უსაფრთხოების პოლიტიკა, რათა დაუშვას მოდულის ჯვარედინი სკრიპტირება.

დაიწყეთ ძიების საწყისი გვერდი თქვენს კომპიუტერში მას შემდეგ, რაც დააინსტალირეთ უფასო პროგრამული უზრუნველყოფა (ვიდეო ჩანაწერი/სტრიმინგი, ჩამოტვირთვების მენეჯერები ან PDF შემქმნელები), რომელიც მათ ინსტალაციაში იყო ჩართული ბრაუზერის გამტაცებელი.
მაგალითად, VPlay-ის ინსტალაციისას, თქვენ ასევე ეთანხმებით თქვენი ბრაუზერის საწყისი გვერდის შეცვლას start-search.comდა ნაგულისხმევი საძიებო სისტემა search.yahoo.com


თუმცა, როდესაც თქვენ წაშლით VPlay-ს თქვენი კომპიუტერიდან, თქვენი ბრაუზერის ნაგულისხმევი პარამეტრები არ აღდგება. ეს ნიშნავს, რომ თქვენ უნდა წაშალოთ start-search.com-ის საწყისი გვერდი თქვენი საყვარელი ბრაუზერიდან ხელით.

Შენ უნდა ყოველთვის მიაქციეთ ყურადღება პროგრამული უზრუნველყოფის ინსტალაციისასრადგან ხშირად, პროგრამული უზრუნველყოფის ინსტალერი მოიცავს არასავალდებულო ინსტალაციას, როგორიცაა start-search.com ბრაუზერის გამტაცებელი. იყავით ძალიან ფრთხილად, რას ეთანხმებით დააინსტალიროთ.
ყოველთვის აირჩიე მორგებული ინსტალაციადა გააუქმეთ ყველაფერი, რაც არ არის ნაცნობი, განსაკუთრებით არასავალდებულო პროგრამული უზრუნველყოფა, რომლის ჩამოტვირთვა და ინსტალაცია ჯერ არ გინდოდათ. ცხადია, რომ არ უნდა დააინსტალიროთ პროგრამული უზრუნველყოფა, რომელსაც არ ენდობით.

როგორ წავშალოთ start-search.com (ვირუსის მოცილების სახელმძღვანელო)

ეს გვერდი არის ყოვლისმომცველი სახელმძღვანელო, რომელიც წაშლის start-search.com-ს თქვენი Internet Explorer-დან, Firefox-დან და Google Chrome-იდან.
გთხოვთ შეასრულოთ ყველა ნაბიჯი სწორი თანმიმდევრობით. თუ თქვენ გაქვთ რაიმე შეკითხვა ან ეჭვი ნებისმიერ ეტაპზე, STOPდა ითხოვეთ ჩვენი დახმარება.




ნაბიჯი 1: წაშალეთ start-search.com მავნე პროგრამები თქვენი კომპიუტერიდან

ამ პირველ ეტაპზე ჩვენ შევეცდებით ამოვიცნოთ და წავშალოთ ნებისმიერი მავნე პროგრამა, რომელიც შეიძლება დაინსტალირებული იყოს თქვენს კომპიუტერში.

თუ თქვენ გაქვთ პრობლემები start-search.com პროგრამის დეინსტალაციის მცდელობისას, შეგიძლიათ გამოიყენოთ ეს არასასურველი პროგრამის მთლიანად ამოსაღებად თქვენი კომპიუტერიდან.

ნაბიჯი 2: წაშალეთ start-search.com ვირუსი Internet Explorer, Firefox და Google Chrome-დან

ამოიღეთ start-search.com ვირუსი Internet Explorer-დან

შეგიძლიათ აღადგინოთ Internet Explorer-ის პარამეტრები, რათა დააბრუნოთ ისინი იმ მდგომარეობაში, რომელშიც იყო, როდესაც Internet Explorer პირველად დაინსტალირდა თქვენს კომპიუტერში.

ამოიღეთ start-search.com ვირუსი Mozilla Firefox-დან

თუ Firefox-თან პრობლემები გაქვთ, მისი გადატვირთვა დაგეხმარებათ. გადატვირთვის გამოსწორება ბევრ პრობლემას ახასიათებს Firefox-ის ქარხნულ ნაგულისხმევ მდგომარეობაში აღდგენით, თქვენი არსებითი ინფორმაციის შენახვაში, როგორიცაა სანიშნეები, პაროლები, ვებ ფორმის ავტომატური შევსების ინფორმაცია, დათვალიერების ისტორია და ღია ჩანართები.

შენიშვნა: თქვენი ძველი Firefox პროფილი განთავსდება თქვენს სამუშაო მაგიდაზე საქაღალდეში სახელად “ ძველი Firefox მონაცემები“. თუ გადატვირთვამ ვერ მოაგვარა თქვენი პრობლემა, შეგიძლიათ აღადგინოთ ზოგიერთი ინფორმაცია, რომელიც არ არის შენახული, ფაილების კოპირებით ახალ პროფილში, რომელიც შექმნილ იქნა. თუ ეს საქაღალდე აღარ გჭირდებათ, უნდა წაშალოთ ის, რადგან ის შეიცავს სენსიტიურ ინფორმაციას.

წაშალეთ start-search.com ვირუსი Google Chrome-იდან

ნაბიჯი 3: წაშალეთ start-search.com ბრაუზერის გამტაცებელი AdwCleaner-ით

AdwCleaner უტილიტა დაასკანირებს თქვენს კომპიუტერსა და ვებ ბრაუზერს „start-search.com“ მავნე ფაილებისთვის, ბრაუზერის გაფართოებებისა და რეესტრის გასაღებებისთვის, რომლებიც შესაძლოა დაინსტალირებული იყოს თქვენს კომპიუტერში თქვენი ცოდნის გარეშე.

ნაბიჯი 4: წაშალეთ start-search.com ვირუსი თქვენი კომპიუტერიდან Malwarebytes Anti-Malware Free-ით

Malwarebytes Anti-Malware Free იყენებს ინდუსტრიის წამყვან ტექნოლოგიას მავნე პროგრამების ყველა კვალის აღმოსაჩენად და მოსაშორებლად, მათ შორის ჭიები, ტროასები, rootkits, rogues, dialers, spyware და სხვა.
მნიშვნელოვანია აღინიშნოს, რომ Malwarebytes Anti-Malware კარგად მუშაობს და უნდა იმუშაოს ანტივირუსულ პროგრამასთან ერთად კონფლიქტების გარეშე.

  1. შეგიძლიათ ჩამოტვირთოთ ჩამოტვირთეთ Malwarebytes Anti-Malwareქვემოთ მოცემული ბმულიდან.
    (ეს ბმული გახსნის ახალ ვებ გვერდს, საიდანაც შეგიძლიათ ჩამოტვირთოთ Malwarebytes Anti-Malware Free)
  2. ჩამოტვირთვის შემდეგ დახურეთ ყველა პროგრამა, შემდეგ ორჯერ დააწკაპუნეთ თქვენს სამუშაო მაგიდაზე არსებულ ხატულაზე სახელად “ mbam-setup-consumer-2.00.xx” Malwarebytes Anti-Malware-ის ინსტალაციის დასაწყებად.

    თქვენ შეიძლება წარმოგიდგინოთ მომხმარებლის ანგარიშის კონტროლის დიალოგი, რომელშიც გეკითხებით, გსურთ თუ არა ამ ფაილის გაშვება. თუ ეს მოხდება, თქვენ უნდა დააჭიროთ " დიახ” ინსტალაციის გასაგრძელებლად.
  3. როდესაც ინსტალაცია დაიწყება, ნახავთ რომელიც დაგეხმარებათ ინსტალაციის პროცესში.


    იმისათვის, რომ დააინსტალიროთ Malwarebytes Anti-Malware თქვენს მოწყობილობაზე, განაგრძეთ მითითებების მიყოლადაწკაპუნებით " შემდეგი” ღილაკი.

  4. ინსტალაციის შემდეგ, Malwarebytes Anti-Malware ავტომატურად დაიწყება და ნახავთ შეტყობინებას, რომელშიც ნათქვამია, რომ უნდა განაახლოთ პროგრამა და რომ სკანირება არასოდეს განხორციელებულა თქვენს სისტემაზე. სისტემის სკანირების დასაწყებად შეგიძლიათ დააჭიროთ ღილაკს ” გაასწორე ახლა” ღილაკი.


    ალტერნატიულად, შეგიძლიათ დააჭიროთ " სკანირება"ჩაება და აირჩიეთ" საფრთხის სკანირება“, შემდეგ დააწკაპუნეთ "ახლავე სკანირება"ღილაკი.

  5. Malwarebytes Anti-Malware ახლა შეამოწმებს განახლებებს და თუ არის ასეთი, თქვენ უნდა დააჭიროთ " განაახლეთ ახლა” ღილაკი.

  6. Malwarebytes Anti-Malware ახლა დაიწყებს თქვენი კომპიუტერის სკანირებას start-search.com ვირუსისთვის. როდესაც Malwarebytes Anti-Malware სკანირებს, ის გამოიყურება ქვემოთ მოცემულ სურათზე.

  7. როდესაც სკანირება დასრულდება, ახლა გამოჩნდება ეკრანი, რომელიც გიჩვენებთ მავნე პროგრამების ინფექციებს, რომლებიც აღმოაჩინა Malwarebytes-ის Anti-Malware-მა. მავნე პროგრამების მოსაშორებლად, რომლებიც აღმოაჩინა Malwarebytes Anti-malware, დააწკაპუნეთ " კარანტინი ყველა” ღილაკზე და შემდეგ დააჭირეთ ღილაკს ” მიმართეთ ახლავე” ღილაკი.


    გთხოვთ გაითვალისწინოთ, რომ აღმოჩენილი ინფექციები შეიძლება განსხვავდებოდეს იმისგან, რაც ნაჩვენებია სურათზე.
  8. Malwarebytes Anti-Malware ახლა კარანტინში მოახდენს ყველა მავნე ფაილს და რეესტრის გასაღებს, რომელიც აღმოაჩინა. ფაილების წაშლისას, Malwarebytes Anti-Malware-მა შეიძლება მოითხოვოს გადატვირთვა ზოგიერთი მათგანის წასაშლელად. თუ ის აჩვენებს შეტყობინებას იმის შესახებ, რომ მას სჭირდება თქვენი კომპიუტერის გადატვირთვა, გთხოვთ, დაუშვათ ამის გაკეთება.


    თქვენი კომპიუტერის გადატვირთვის შემდეგ, თქვენ უნდა გახსნათ Malwarebytes Anti-Malware და შეასრულოთ კიდევ ერთი „საფრთხის სკანირება“, რათა დაადასტუროთ, რომ საფრთხეები არ არსებობს.

ნაბიჯი 5: ორჯერ შეამოწმეთ start-search.com ინფექციისთვის HitmanPro-ით

HitmanPro არის მეორე აზრის სკანერი, შექმნილია თქვენი კომპიუტერის მავნე პროგრამებისგან (ვირუსები, ტროიანები, rootkits და ა.შ.) გადასარჩენად, რომლებმაც დაინფიცირეს თქვენი კომპიუტერი, მიუხედავად ყველა უსაფრთხოების ზომებისა (როგორიცაა ანტივირუსული პროგრამული უზრუნველყოფა, ფაირვოლლები და ა.შ.). HitmanPro შექმნილია იმუშაოს არსებულ უსაფრთხოების პროგრამებთან ერთად ყოველგვარი კონფლიქტის გარეშე. ის სწრაფად ასკანირებს კომპიუტერს (5 წუთზე ნაკლები) და არ ანელებს კომპიუტერს.

შესავალი

Balsa სისტემა, რომელიც დაფუძნებულია Linux-ის Xubuntu 10.04 (ლუციდ) ვერსიაზე, ხელმისაწვდომია ბეტა პროგრამული უზრუნველყოფის გამოსაყენებლად. ეს გვერდი გეტყვით რა გჭირდებათ Balsa-ს ჩამოსატვირთად და გასაშვებად და შემდეგ მიუთითებს ინსტრუქციებზე, თუ როგორ უნდა გააკეთოთ ეს.

Balsa იყენებს SD ბარათს კომპიუტერზე გასაშვებად. SD ბარათს უნდა ჰქონდეს Balsa სისტემა, სანამ ის გამოიყენებს Balsa-ს გასაშვებად.

შეგიძლიათ აწარმოოთ Balsa SD ბარათი ერთ კომპიუტერზე და გაუშვათ იგი სხვა კომპიუტერზე. კომპიუტერი, რომელზეც მას აწარმოებთ, არ უნდა აწარმოოს თავად Balsa.

რა გჭირდებათ ბალზას გასაშვებად

Balsa-ს გასაშვებად დაგჭირდებათ შემდეგი:

Balsa SD ბარათის დასამზადებლად კომპიუტერს, რომელზედაც თქვენ აწარმოებთ მას დასჭირდება 5 ან 9 გიგაბაიტი სივრცე, სანამ ბარათი მზადდება.

შენიშვნა SD ბარათის წამკითხველების შესახებ

ზოგიერთ ძველ ლეპტოპზე SD მკითხველი ვერ უმკლავდება 4 ან 8 გიგაბაიტიან SD ბარათს. სხვა SD ბარათის წამკითხველები, რომლებსაც ზოგიერთი Dell კომპიუტერი იყენებს, არ მუშაობს Balsa სისტემასთან. ნებისმიერ შემთხვევაში, Balsa შეიძლება გაშვებული იყოს ცალკე USB SD ბარათის წამკითხველზე.

Balsa SD ბარათები გამოდის 4 ან 8 გიგაბაიტიანი ვერსიით. ნებისმიერი ვერსიის დამზადება შესაძლებელია როგორც Windows-ზე, ასევე Linux-ზე. ორივე Windows და Linux იყენებენ ერთსა და იმავე ჩამოტვირთულ ფაილს ბარათისთვის და ჩაშენებული ბარათი იქნება იდენტური, როგორც ერთი მეორე სისტემაში. აირჩიეთ ერთ-ერთი მათგანი.

PHP უზრუნველყოფს რამდენიმე ფუნქციას, რომელიც ეძებს ერთ სტრიქონს მეორეში. ზოგი აბრუნებს ნაპოვნი სტრიქონის მდებარეობას (strpos, strrpos და მასთან დაკავშირებულ) და აბრუნებს ორიგინალური სტრიქონის ნაწილს (strstr და strrchr). საძიებო ფუნქციები უბრუნდება false-ს, თუ სტრიქონი, რომელსაც თქვენ ეძებთ, არ არის ნაპოვნი ორიგინალში.

თუ თქვენი მიზანია უბრალოდ დაადგინოთ არის თუ არა ერთი სტრიქონი მეორეში, ყველაზე ეფექტური ვარიანტია strpos.

სტრპოსი

strpos ფუნქცია ეძებს თავის პირველ სტრიქონის არგუმენტს მეორესთვის და აბრუნებს სტრიქონში პირველი შესატყვისის ნულზე დაფუძნებულ ინდექსის ადგილს, ან false, თუ ის ვერ მოიძებნა. შემდეგი მაგალითი აჩვენებს:

$str = ; // მოძებნეთ "საჭიროების" პირველი შემთხვევა $str-ში$pos = strpos($str, "საჭიროება"); // ჩვენების ტიპი და ღირებულება $pos var_dump ($pos) ; // int(3)

მიუხედავად იმისა, რომ ჩვენ ვაჩვენეთ შედეგი var_dump-ის გამოყენებით ზემოთ, strpos-ისთვის დაბრუნებული მნიშვნელობის ტიპიური გამოკვლევა ხორციელდება შემდეგნაირად:

// როგორ შეამოწმოთ strpos დაბრუნების მნიშვნელობა ($pos) if ($pos !== false ) ( // თუ საძიებო სტრიქონი იპოვა echo "იპოვა იგი მდებარეობაში $pos" ;) else (echo "ვერ მოიძებნა." ;)

დარწმუნდით, რომ გამოიყენეთ === ან !== ოპერატორები strpos ფუნქციის დაბრუნების მნიშვნელობას false-თან შესადარებლად. თუ ქვესტრიქონი ნაპოვნია სტრიქონის დასაწყისში, strpos დააბრუნებს 0-ს, რომელიც == ან != ოპერატორები. გადაიქცევა ყალბად.

თქვენ შეგიძლიათ მიუთითოთ ოფსეტი სტრიქონის დასაწყისიდან სიმბოლოების განსაზღვრული რაოდენობის ძიების დასაწყებად, როგორც ეს მაგალითი აჩვენებს:

/* strpos არგუმენტები: * თემის სტრიქონი (aka haystack), საძიებო სტრიქონი (ნემსი), ოფსეტური (სურვილისამებრ) */ // დაიწყეთ ძიება "need" სიმბოლოდან $str-ში 10$pos = strpos ($str , "საჭიროება" , 10 ); // 20

ძიების დაწყებისას მე-10 სიმბოლოდან, შედეგი არის 20, სიტყვის ნემსის საწყისი ადგილის ინდექსი.

სტრრპოს

strrpos ფუნქცია პოულობს სტრიქონში ქვესტრიქონის ბოლო გაჩენის პოზიციას:

// სტრიქონის მაგალითი ძიებისთვის გამოსაყენებლად$str = „ნემსი თივის გროვში უნდა ვიპოვოთ“.; // იპოვნეთ "საჭიროების" ბოლო გაჩენის მდებარეობა $str$pos = strrpos ($str, "საჭიროება"); // 20

strrpos ფუნქცია ასევე უზრუნველყოფს არასავალდებულო ოფსეტური პარამეტრს, რომელიც შეიძლება იყოს დადებითი ან უარყოფითი. თუ ოფსეტი დადებითია, სიმბოლოების ეს რაოდენობა სტრიქონის დასაწყისში გამოირიცხება ძიებიდან. განვიხილოთ შემდეგი მაგალითი:

// მოძებნეთ მარცხნიდან "ჩვენ" პირველი 3 სიმბოლოს გამოკლებით$pos = strrpos ($str , "ჩვენ" , 3 ); var_dump ($pos) ; //bool(false)

შედეგი მცდარია, რადგან „ჩვენ“ ვერ მოიძებნება, როდესაც ძიება გამორიცხავს პირველ სამ სიმბოლოს.

თუ ოფსეტი უარყოფითია, სტრიქონის ბოლოს მრავალი სიმბოლო გამოირიცხება ძიებიდან. ჩვენ ვაჩვენებთ ორი ძიებით უარყოფით კომპენსაციას:

// მოძებნეთ მარჯვნიდან "თივა" ბოლო 5 სიმბოლოს გამოკლებით$pos = strrpos ($str , "თივა" , - 5 ); // int(34) // ძიება მარჯვნიდან ბოლო 10 სიმბოლოს გამოკლებით$pos = strrpos ($str , "თივა" , - 10 ); //bool(false)

ზემოთ მოყვანილი ბოლო შედეგი მცდარია, რადგან "თივა" არ არის ნაპოვნი, როდესაც ძიება გამორიცხავს ბოლო 10 სიმბოლოს.

გაითვალისწინეთ, რომ strrpos ფუნქციის დაბრუნების მნიშვნელობა იძლევა მდებარეობას სტრიქონის დასაწყისიდან, მიუხედავად იმისა, რომ ძიება იწყება მარჯვნიდან.

stripos და stripos

strpos და strrpos ფუნქციები ასრულებენ რეგისტრის მგრძნობიარე ძიებას. PHP უზრუნველყოფს stripos და strripos ფუნქციებს, რომ შეასრულოს რეგისტრირებული ძიებები. ისინი მუშაობენ ისევე, როგორც მათი შემთხვევის მიმართ მგრძნობიარე ეკვივალენტები:

// სტრიქონის მაგალითი ძიებისთვის გამოსაყენებლად$str = „ნემსი თივის გროვში უნდა ვიპოვოთ“.; // შეასრულეთ „ჩვენ“-ის ძიება$pos = stripos($str, "ჩვენ"); // int(0) // მარცხნიდან შეასრულეთ „საჭიროების“ ძიება.$pos = strripos($str, "საჭიროება"); // int(20)

"ჩვენ"-ის ძიების უზომო რეგისტრის შედეგი არის 0, რაც მიუთითებს, რომ ის ნაპოვნია იმ სტრიქონის დასაწყისში, რომელშიც ჩვენ ვეძებთ. „საჭიროების“ ძიება მარჯვნიდან (სტრიპოსის გამოყენებით), პოულობს მას მე-20 ადგილას.

strstr

strstr ფუნქცია ეძებს პირველი სტრიქონის არგუმენტს მეორესთვის. თუ მეორე ნაპოვნია პირველში, strstr აბრუნებს ორიგინალური სტრიქონის ნაწილს, დაწყებული პირველი ნაპოვნი შემთხვევიდან სტრიქონის ბოლომდე.

// მაგალითის სტრიქონი $str = „ნემსი თივის გროვში უნდა ვიპოვოთ“.; // მოძებნეთ "the" $str-ში $newstr = strstr ($str, "the"); var_dump ($newstr) ; // string(27) "ნემსი თივის გროვაში."

strstr ფუნქცია აბრუნებს პირველ "the"-ს, რომელსაც აღმოაჩენს, დანარჩენ თავდაპირველ სტრიქონთან ერთად.

თუ strstr-ს მესამე არგუმენტად გადასცემთ true, ორიგინალური სტრიქონის ნაწილს ადრენაპოვნი სტრიქონი დაბრუნდა:

// pass true, რათა დააბრუნოს $str-ის ნაწილი "the"-მდე$newstr = strstr ($str , "the" , true ); var_dump ($newstr) ; // string(16) "ჩვენ უნდა ვიპოვოთ"

ამჯერად strstr ფუნქცია აბრუნებს ყველაფერს სტრიქონში პირველი "the"-მდე.

PHP ასევე უზრუნველყოფს stristr ფუნქციას, რომელიც მუშაობს ზუსტად ისევე, როგორც strstr, გარდა იმისა, რომ ის ახორციელებს ძიებას, რომლის მიმართაც არ არის მგრძნობიარე.

strhrchr

strrchr ფუნქცია ეძებს პირველ სტრიქონს არგუმენტს მარცხნიდან იმ სიმბოლოსთვის, რომელსაც ჩვენ ვაზუსტებთ მეორე არგუმენტში. ფუნქცია აბრუნებს სტრიქონის ნაწილს ამ სიმბოლოს ნაპოვნი ეგზემპლარის მდებარეობიდან სტრიქონის ბოლომდე:

// მაგალითის სტრიქონი $str = „ნემსი თივის გროვში უნდა ვიპოვოთ“.; // მოძებნეთ მარჯვნიდან "s" $str-ში$newstr = strstr ($str , "s" ); var_dump ($newstr) ; // string(6) "stack."

გაითვალისწინეთ, რომ strstr-ისგან განსხვავებით, თუ მეორე არგუმენტი შედგება მრავალი სიმბოლოსგან, გამოიყენება მხოლოდ პირველი:

// ტესტი მრავალსიმბოლოიანი მეორე არგუმენტით$newstr = strrchr ($str, "the"); var_dump ($newstr) ; // string(5) "tack."

იმის ნაცვლად, რომ დააბრუნოს "haystack", strrchr ფუნქცია აბრუნებს "tack"-ს და გამოიყენებს მეორე არგუმენტის მხოლოდ პირველ ასოს ძიებაში.

გამარჯობა, ჰაბრ!

დღეს მსურს გააცნო ახალბედა ვებმასტერებს PHP-ში გამომავალი ბუფერინგის გამოყენების მრავალფეროვნება. გამოცდილი ვებმასტერები ნაკლებად სავარაუდოა, რომ აქ რაიმე სასარგებლო იპოვონ. თუმცა - ვინ იცის?

როგორც ყველამ იცით, გამომავალი ბუფერირება php-ში კონტროლდება ფუნქციების სიმრავლით, რომელიც იწყება "ob_"-ით. მათგან ყველაზე მნიშვნელოვანია ob_start. გაშვებისას ის აგროვებს შემდგომ გამომავალს, ანუ ყველა სახის print(), echo და ა.შ., რომელიც შემდეგ გადაეცემა ვიზიტორს html გვერდის სახით. და თუ ჩვენ დავიწყეთ ბუფერირება გამოტანამდე, მაშინ საბოლოოდ შეგვიძლია რაღაცის გაკეთება ამ თითქმის მზა გვერდით.


მაგალითად, ჩვენ გვინდა გავფილტროთ ყველა ბმული გარე საიტებზე.

ჩვენს ფორუმზე, ავსტრალოპითეკის ცულისავით ძველი, უამრავი სპამერი იყრის თავს, რომლებიც იზიდავს მნახველებს გარყვნილებით, ცალმხრივი ბანდიტებითა და პოლიტიკური აჟიოტაჟით სავსე ადგილებში. ჩვენ შეგვიძლია გამოვიყენოთ js თვალთვალის საშუალებით, მაგრამ ჩვენ გვინდა შევცვალოთ ყველა ეს ბმული ასე:

"http://blackjack-hookers.com" => "http://myoldforum.ru/redirect.php?url=blackjack-hookers.com"

მეთოდი შეიძლება არ იყოს ყველაზე ეფექტური, მაგრამ ეფექტურია. ჩვენ დავწერეთ redirect.php ფილტრით და შავი სიით და ახლა ჩვენ უნდა გადავიყვანოთ ყველა ბმული ათასობით ფორუმის გვერდზე. ob_start და რამდენიმე რეგულარული გამონათქვამის გამოყენებით, ჩვენ შეგვიძლია ამის გაკეთება მხოლოდ რამდენიმე სტრიქონში:

ფუნქცია f_callback($buffer)($buffer = preg_replace("#http://(www.)?myoldforum\.ru/#","/",$buffer); $buffer = preg_replace("#href="http ://([^"]*)"#","#href="/redirect\.php\?url=$1",$buffer); დაბრუნება $buffer; ) ob_start(f_callback);

ახლა, index.php-ის დასაწყისში ამ კოდის ან სხვა ფაილის ჩართვისას, რომელსაც სერვერი წვდება გვერდების ნახვისას, მივიღებთ იმას, რაც გვჭირდება.

შინაარსის ამ გზით შეცვლით, ჩვენ არ შემოიფარგლება ძრავის მეთოდებით. ეს შეიძლება იყოს ძალიან ღირებული. მაგალითად, შეგიძლიათ დაამატოთ დანამატი:

ფუნქციაgene_plugin() ( /*generate something*/ ) ფუნქცია f_callback($buffer)( /*...*/ $buffer = str_replace ("",generate_plugin(),$buffer); /*...*/ return $buffer; ) ob_start("f_callback");

ახლა, სადაც დავამატეთ შინაარსი, გამოჩნდება ის, რაც გვინდოდა. ერთ-ერთი აპლიკაცია არის js ვიჯეტის ჩასმა ვებსაიტის გვერდზე. მაგალითად, Yandex რუკები. როგორც წესი, ეს არ არის რთული, მაგრამ ზოგჯერ ცუდად დაწერილი ვებგვერდის რედაქტორი გაურბის ციტატებს და ხვეულ ბრეკეტებს, არღვევს ვიჯეტს. როგორც ხედავთ, ეს პრობლემა მარტივად მოგვარდება.

გამომავალი ბუფერთან მუშაობისთვის PHP ინსტრუმენტების ნაკრები მდიდარია და არ შემოიფარგლება მხოლოდ ob_start-ით. ზემოთ აღწერილი მეთოდები ზოგ შემთხვევაში ზედმეტად რესურსზე ინტენსიურია და შრომატევადი, რადგან ისინი მოქმედებს მთელ გვერდზე. ჩვენ შეგვიძლია მისი მხოლოდ ნაწილის დამუშავება შაბლონში შეფუთვის შექმნით, რაც არ გვინდა, რომ შევიდეთ, მაგრამ ეს აუცილებლად უნდა გამოსწორდეს:

(შექმენი დიდი გიჟური რამ)

თქვენ უკვე შეამჩნიეთ ყველა ეს ფრაზა: „არ მინდა მასში შეღწევა“, „ტირანოზავრის სკამივით უძველესი“, „არასწორად დაწერილი რედაქტორი“... იდეალურ სამყაროში გამომავალი ბუფერის გარშემო ჭურვებია. არაა საჭირო. ყველაფერი, რაც შეიძლება გაკეთდეს ob_start-ით, თეორიულად შეიძლება გაკეთდეს მის გარეშე. ეს ტექნიკა ზოგჯერ იწვევს დაბნეულობას პროექტის კოდში; ბევრი ხედავს მის მნიშვნელობას მხოლოდ გამომავალი ob_gzhandler-ზე შეკუმშვისთვის გაგზავნაში და მიიჩნევს მის გამოყენებას სხვა შემთხვევებში საშიშად. მაგრამ ხშირად თქვენ უბრალოდ არ შეგიძლიათ გამომავალი კონტროლის გარეშე.

მით უმეტეს, თუ არ გინდა ღრმად გათხრა.

(PHP 4, PHP 5, PHP 7)

ob_start - გამომავალი ბუფერირების ჩართვა

აღწერა

ბული ob_start ([ გამოძახებადი$output_callback = NULL [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

ეს ფუნქცია იძლევა გამომავალი ბუფერირების საშუალებას. თუ გამომავალი ბუფერირება აქტიურია, სკრიპტის გამომავალი არ იგზავნება (გარდა სათაურებისა), მაგრამ ინახება შიდა ბუფერში.

ამ შიდა ბუფერის შიგთავსი შეიძლება დაკოპირდეს სიმებიანი ცვლადის გამოყენებით ob_get_contents(). შიდა ბუფერის შინაარსის გამოსატანად უნდა გამოიყენოთ ob_end_flush(). ალტერნატიულად შეგიძლიათ გამოიყენოთ ob_end_clean()ბუფერის შიგთავსის განადგურება.

ყურადღება

ზოგიერთი ვებ სერვერი (მაგალითად Apache) ცვლის სკრიპტის სამუშაო დირექტორიას, როდესაც გამოიძახება გამოძახების ფუნქცია. შეგიძლიათ მისი დაბრუნება გამოყენებით chdir(dirname($_SERVER["SCRIPT_FILENAME"]))გამოძახების ფუნქციაში.

გამომავალი ბუფერები გადადის სტეკზე, რაც ნიშნავს, რომ ზარები დაშვებულია ob_start ()სხვა აქტიური დარეკვის შემდეგ ob_start (). ამ შემთხვევაში აუცილებელია დარეკვა ob_end_flush()სათანადო რაოდენობის ჯერ. თუ გამოძახების რამდენიმე ფუნქცია აქტიურია, გამომავალი იფილტრება თანმიმდევრულად თითოეული მათგანისთვის ბუდობრივი თანმიმდევრობით.

პარამეტრების სია

შეიძლება მითითებული იყოს არასავალდებულო output_callback პარამეტრი. ეს ფუნქცია არგუმენტად იღებს სტრიქონს და ასევე უნდა დააბრუნოს სტრიქონი. მას უწოდებენ გადატვირთვის (გაგზავნა) ან გასუფთავებისას (გამოყენებით ob_flush(), ob_clean ()ან მსგავსი ფუნქციები) ან თუ გამომავალი ბუფერი ჩაედინება ბრაუზერში მოთხოვნის ბოლოს. როდესაც გამოძახების ფუნქცია გამოიძახება, ის იღებს ბუფერის შიგთავსს და უნდა დააბრუნოს განახლებული შიგთავსი, რათა გამომავალი ბუფერი გაიგზავნოს ბრაუზერში. თუ output_callback არ არის სწორი ფუნქცია, მაშინ დოკუმენტირებული ფუნქცია დაბრუნდება ცრუ. ფუნქციის აღწერა ამ პარამეტრისთვის:

სიმებიანი დამმუშავებელი (სიმებიანი $buffer [, int $ფაზა ])

ბუფერი გამომავალი ბუფერის შიგთავსი.ფაზა მუდმივების ბიტი ნიღაბი PHP_OUTPUT_HANDLER_*.

თუ output_callback დაბრუნდება ცრუ, მაშინ ორიგინალური ინფორმაცია გადაეგზავნება ბრაუზერს ცვლილებების გარეშე.

output_callback პარამეტრის იგნორირება შესაძლებელია მნიშვნელობის გადაცემით NULL.

ob_end_clean(), ob_end_flush(), ob_clean (), ob_flush()და ob_start ()არ შეიძლება გამოძახება გამოძახების ფუნქციებიდან, რადგან მათი ქცევა არაპროგნოზირებადია. თუ გსურთ წაშალოთ ბუფერის შინაარსი, დააბრუნეთ "" (ცარიელი სტრიქონი) გამოძახების ფუნქციიდან. თქვენ ასევე არ შეგიძლიათ ფუნქციების გამოძახება print_r ($expression, true)ან highlight_file ($filename, true)გამომავალი ბუფერული გამოძახების ფუნქციებიდან.

კომენტარი:

PHP 4.0.4-ში ფუნქცია ob_gzhandler()დაინერგა, რათა გაადვილდეს gz-ში კოდირებული მონაცემების გაგზავნა ვებ ბრაუზერებში, რომლებიც მხარს უჭერენ შეკუმშულ ვებ გვერდებს. ob_gzhandler()განსაზღვრავს ბრაუზერის მიერ მიღებული შინაარსის კოდირების ტიპს და შესაბამისად აბრუნებს გამომავალს.

ნაჭერი_ზომა

თუ არასავალდებულო chunk_size პარამეტრს გადასცემენ, ბუფერი ჩამოირეცხება chunk_size-ზე მეტი ან ტოლი ნებისმიერი გამოსავლის შემდეგ. ნაგულისხმევი მნიშვნელობა 0 ნიშნავს, რომ გამომავალი ფუნქცია გამოიძახება ბუფერის დახურვისას.

PHP 5.4.0-მდე, მნიშვნელობა 1 იყო სპეციალური მნიშვნელობა, რომელიც ადგენდა პარამეტრს ნაჭერი_ზომა 4096-ზე.

flags პარამეტრი არის ბიტმასკი, რომელიც აკონტროლებს ოპერაციებს, რომლებიც შეიძლება შესრულდეს გამომავალი ბუფერზე. ნაგულისხმევად, ის იძლევა გამომავალი ბუფერის გარეცხვის, გარეცხვისა და წაშლის საშუალებას, რაც იგივეა, რაც | | , ან PHP_OUTPUT_HANDLER_STDFLAGSროგორც ამ კომბინაციის აბრევიატურა.

თითოეული დროშა აკონტროლებს წვდომას ფუნქციების კომპლექტზე, როგორც ეს აღწერილია ქვემოთ:

მუდმივი ფუნქციები
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean (), ob_end_clean(), და ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush(), და ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), და ob_get_flush().

ღირებულებების დაბრუნება

ბრუნდება მართალიწარმატებით დასრულების შემდეგ ან ცრუშეცდომის შემთხვევაში.

ცვლილებების სია

ვერსია აღწერა
7.0.0 თუ ob_start ()გამოყენებული გამომავალი ბუფერული გამოძახების ფუნქციის შიგნით, ეს ფუნქცია აღარ წარმოქმნის შეცდომას E_ERROR, მაგრამ ამის ნაცვლად დარეკავს E_აღდგენის_შეცდომა, საშუალებას აძლევს მესამე მხარის შეცდომის დამმუშავებლებს დაიჭირონ ის.
5.4.0 მესამე პარამეტრი ob_start ()შეიცვალა ლოგიკურიდან ( ლოგიკური) წაშლის პარამეტრის (რომელიც, როდესაც დაყენებულია ცრუხელი შეუშალა ბუფერის წაშლას სკრიპტის დასრულებამდე) მთელ რიცხვში ( მთელი რიცხვი) flags პარამეტრი. სამწუხაროდ, ეს ნიშნავს API-ის შეუთავსებლობას კოდისთვის, რომელიც იყენებდა მესამე პარამეტრს PHP 5.4.0-მდე. იხილეთ დროშების მაგალითი, რათა გაიგოთ, თუ როგორ უნდა იმუშაოთ კოდთან ისე, რომ იგი თავსებადი იყოს ორივე ვერსიასთან.
5.4.0 Პარამეტრი ნაჭერი_ზომა, დამონტაჟებულია 1 , ახლა იწვევს 1 ბაიტი გამომავალი ბუფერში.
4.3.2 ფუნქცია დაბრუნდება ცრუიმ შემთხვევაში, თუ output_callback ვერ შესრულდება.

მაგალითები

მაგალითი #1 მომხმარებლის მიერ განსაზღვრული გამოძახების ფუნქციის მაგალითი

ფუნქციის გამოძახება ($buffer)
{
// შეცვალეთ ყველა ვაშლი ფორთოხლით
return (str_replace("apples", "ფორთოხალი", $buffer));
}

Ob_start ("გამოძახება");

?>


ეს ვაშლის და ფორთოხლის შედარებას ჰგავს.






ob_end_flush();