Andrew arama php başlat. php proje desteği ile ob_start kullanma

  • 03.11.2019

Aramaya başla diğer ücretsiz indirmeler aracılığıyla tanıtılan bir tarayıcı korsanıdır ve yüklendikten sonra tarayıcı ana sayfanızı şu şekilde değiştirir: start-search.com arama.yahoo.com.

start-search.com ana sayfası, arama sonuçlarınızda reklamlar ve sponsorlu bağlantılar görüntüler ve arama sorgularınızdan arama terimleri toplayabilir. start-search.com kaçırma, bir sitenin arama sonuçlarındaki sayfa sıralamasını şişirmek için blackhat SEO kullanımında olduğu gibi reklam gelirini artırmak için kullanılır.

Aramaya Başlayın Teknik olarak bir virüs değildir, ancak işletim sistemine derinlemesine bağlanmak için rootkit yetenekleri, tarayıcı ele geçirme ve genel olarak yalnızca kullanıcı deneyimine müdahale etme gibi birçok kötü amaçlı özellik sergiler. Endüstri genellikle buna "PUP" veya potansiyel olarak istenmeyen program olarak atıfta bulunur.
Aramayı Başlat, reklam destekli (kullanıcılar ek başlık, arama, açılır pencere, açılır pencere, geçiş reklamı ve metin içi bağlantı reklamları yapabilir) Internet Explorer (BHO) ve Firefox/Chrome (eklenti) için çapraz web tarayıcısı eklentisidir ve dağıtılır kurulum sırasında çeşitli para kazanma platformları aracılığıyla. Tarayıcı uzantısı, ana sayfa, arama ayarları dahil olmak üzere tarayıcının varsayılan veya özel ayarlarını değiştirecek ve bazı durumlarda Internet Explorer'ın yükleme süresi eşiğini değiştirecek, rakip yazılımların ayarlarını değiştirmesini önlemek için Firefox'a bir kilit dosyası yerleştirecek çeşitli özellikler. eklentinin siteler arası komut dosyasına izin vermek için tarayıcının İçerik Güvenliği Politikasını devre dışı bırakmanın yanı sıra.

Bu tarayıcı korsanının kurulumlarına dahil olan ücretsiz bir yazılım (video kayıt/akış, indirme yöneticileri veya PDF oluşturucular) yükledikten sonra Aramayı Başlat ana sayfası bilgisayarınıza yüklendi.
Örneğin, VPlay'i kurduğunuzda, tarayıcı ana sayfanızı şu şekilde değiştirmeyi de kabul edeceksiniz. start-search.com ve varsayılan arama motoru arama.yahoo.com


Ancak VPlay'i bilgisayarınızdan kaldırdığınızda, web tarayıcınızın varsayılan ayarları geri yüklenmeyecektir. Bu, start-search.com ana sayfasını favori web tarayıcınızdan manuel olarak kaldırmanız gerektiği anlamına gelir.

Malısın yazılım yüklerken her zaman dikkat edinçünkü genellikle bir yazılım yükleyicisi, bu start-search.com tarayıcı korsanı gibi isteğe bağlı yüklemeler içerir. Ne yüklemeyi kabul ettiğinize çok dikkat edin.
Her zaman özel kurulumu tercih edin ve tanıdık olmayan herhangi bir şeyin, özellikle de ilk başta asla indirip kurmak istemediğiniz isteğe bağlı yazılımların seçimini kaldırın. Güvenmediğiniz yazılımları yüklememeniz gerektiğini söylemeye gerek yok.

start-search.com nasıl kaldırılır (Virüs Temizleme Kılavuzu)

Bu sayfa, start-search.com'u Internet Explorer, Firefox ve Google Chrome'dan kaldıracak kapsamlı bir kılavuzdur.
Lütfen tüm adımları doğru sırayla gerçekleştirin. Herhangi bir noktada herhangi bir sorunuz veya şüpheniz varsa, DUR ve yardımımızı isteyin.




ADIM 1: start-search.com kötü amaçlı programlarını bilgisayarınızdan kaldırın

Bu ilk adımda, bilgisayarınıza yüklenmiş olabilecek kötü amaçlı programları belirlemeye ve kaldırmaya çalışacağız.

start-search.com programını kaldırmaya çalışırken sorun yaşıyorsanız, bu istenmeyen programı makinenizden tamamen kaldırmak için kullanabilirsiniz.

ADIM 2: start-search.com virüsünü Internet Explorer, Firefox ve Google Chrome'dan kaldırın

Start-search.com virüsünü Internet Explorer'dan kaldırın

Internet Explorer ayarlarını, Internet Explorer'ın bilgisayarınıza ilk yüklendiği zamanki durumuna döndürmek için sıfırlayabilirsiniz.

Start-search.com virüsünü Mozilla Firefox'tan kaldırın

Firefox ile sorun yaşıyorsanız, sıfırlamak yardımcı olabilir. Sıfırlama özelliği, Firefox'u yer imleri, şifreler, web formu otomatik doldurma bilgileri, tarama geçmişi ve açık sekmeler gibi temel bilgilerinizi kaydederken fabrika varsayılan durumuna geri yükleyerek birçok sorunu giderir.

Not: Eski Firefox profiliniz masaüstünüzde “ adlı bir klasöre yerleştirilecektir. Eski Firefox Verileri". Sıfırlama sorununuzu çözmediyse, dosyaları oluşturulan yeni profile kopyalayarak kaydedilmemiş bilgilerin bir kısmını geri yükleyebilirsiniz. Bu klasöre artık ihtiyacınız yoksa, hassas bilgiler içerdiğinden silmelisiniz.

Google Chrome'dan start-search.com virüsünü kaldırın

ADIM 3: Start-search.com tarayıcı korsanını AdwCleaner ile kaldırın

AdwCleaner yardımcı programı, bilgisayarınızı ve web tarayıcınızı, bilginiz dışında bilgisayarınıza yüklenmiş olabilecek “start-search.com” kötü amaçlı dosyaları, tarayıcı uzantıları ve kayıt defteri anahtarları için tarar.

ADIM 4: Start-search.com virüsünü Malwarebytes Anti-Malware Free ile bilgisayarınızdan kaldırın

Malwarebytes Anti-Malware Free, solucanlar, Truva atları, rootkit'ler, haydutlar, çeviriciler, casus yazılımlar ve daha fazlası dahil olmak üzere tüm kötü amaçlı yazılım izlerini tespit etmek ve kaldırmak için sektör lideri teknolojiyi kullanır.
Malwarebytes Anti-Malware'in iyi çalıştığını ve antivirüs yazılımıyla birlikte sorunsuz çalışması gerektiğini unutmamak önemlidir.

  1. İndirebilirsin Malwarebytes Anti-Malware'i indirin aşağıdaki bağlantıdan.
    (Bu bağlantı, Malwarebytes Anti-Malware Free'yi indirebileceğiniz yeni bir web sayfası açacaktır)
  2. İndirdikten sonra, tüm programları kapatın, ardından masaüstünüzdeki “ adlı simgeye çift tıklayın. mbam-setup-consumer-2.00.xx” Malwarebytes Anti-Malware kurulumunu başlatmak için.

    Size bu dosyayı çalıştırmak isteyip istemediğinizi soran bir Kullanıcı Hesabı Denetimi iletişim kutusu sunulabilir. Bu olursa, tıklamalısınız Evet” kuruluma devam etmek için.
  3. Kurulum başladığında, göreceksiniz. bu, kurulum sürecinde size rehberlik edecektir.


    Malwarebytes Anti-Malware'i makinenize yüklemek için, istemleri takip etmeye devam et tıklayarak" Sonraki"buton.

  4. Yüklendikten sonra Malwarebytes Anti-Malware otomatik olarak başlayacak ve programı güncellemeniz gerektiğini ve sisteminizde hiç tarama yapılmadığını belirten bir mesaj göreceksiniz. Bir sistem taraması başlatmak için “ Şimdi düzelt"buton.


    alternatif olarak, “ Tarama”sekme ve seçin” Tehdit Taraması", ardından üzerine tıklayın "Şimdi Tara" buton.

  5. Malwarebytes Anti-Malware şimdi güncellemeleri kontrol edecek ve varsa, “ Şimdi güncelle"buton.

  6. Malwarebytes Anti-Malware şimdi bilgisayarınızı start-search.com virüsü için taramaya başlayacaktır. Malwarebytes Anti-Malware tarama yaparken aşağıdaki resim gibi görünecektir.

  7. Tarama tamamlandığında, şimdi size Malwarebytes' Anti-Malware'in tespit ettiği kötü amaçlı yazılım bulaşmalarını gösteren bir ekran sunulacaktır. Malwarebytes Anti-malware'in bulduğu kötü amaçlı programları kaldırmak için “ Tümünü Karantinaya Al” düğmesini ve ardından “ şimdi Uygula"buton.


    Lütfen bulunan enfeksiyonların resimde gösterilenden farklı olabileceğini unutmayın.
  8. Malwarebytes Anti-Malware şimdi bulduğu tüm kötü amaçlı dosyaları ve kayıt defteri anahtarlarını karantinaya alacaktır. Dosyaları kaldırırken Malwarebytes Anti-Malware, bazılarını kaldırmak için yeniden başlatma gerektirebilir. Bilgisayarınızı yeniden başlatması gerektiğini belirten bir mesaj görüntülerse, lütfen bunu yapmasına izin verin.


    Bilgisayarınız yeniden başlatıldıktan sonra, Malwarebytes Anti-Malware'i açmalı ve kalan tehdit olmadığını doğrulamak için başka bir “Tehdit Taraması” gerçekleştirmelisiniz.

ADIM 5: HitmanPro ile start-search.com enfeksiyonu olup olmadığını iki kez kontrol edin

HitmanPro, aldığınız tüm güvenlik önlemlerine (anti virüs yazılımı, güvenlik duvarları vb.) rağmen bilgisayarınıza bulaşan kötü amaçlı yazılımlardan (virüsler, truva atları, rootkitler vb.) bilgisayarınızı kurtarmak için tasarlanmış ikinci bir fikir tarayıcısıdır. HitmanPro, herhangi bir çakışma olmadan mevcut güvenlik programlarıyla birlikte çalışacak şekilde tasarlanmıştır. Bilgisayarı hızlı bir şekilde tarar (5 dakikadan az) ve bilgisayarı yavaşlatmaz.

PHP, bir diziyi diğerinin içinde arayan çeşitli işlevler sağlar. Bazıları bulunan dizenin (strpos , strrpos ve ilgili) konumunu döndürür ve orijinal dizenin (strstr ve strrchr) bir kısmını döndürür. Aradığınız dize orijinalde bulunmazsa, arama işlevleri false döndürür.

Amacınız basitçe bir dizgenin diğerinde var olup olmadığını belirlemekse, en verimli seçenek strpos'tur.

strpos

strpos işlevi, ilk dize bağımsız değişkenini ikincisini arar ve dize içindeki ilk eşleşmenin sıfır tabanlı dizin konumunu veya bulunamazsa false döndürür. Aşağıdaki örnek şunu göstermektedir:

$str = ; // $str içinde "ihtiyacın" ilk oluşumunu arayın$konum = strpos ($str , "ihtiyaç" ); // $pos'un tipini ve değerini göster var_dump ($konum); // int(3)

Sonucu yukarıda var_dump kullanarak göstersek de, strpos için dönüş değerinin tipik bir incelemesi şu şekilde yapılır:

// strpos dönüş değeri nasıl incelenir ($pos) if ( $konum !== false ) ( // arama dizesi bulunursa echo "onu $konum konumunda buldu" ; ) else ( echo "bulunamadı." ; )

strpos işlevinin dönüş değerini false ile karşılaştırmak için === veya !== operatörlerini kullandığınızdan emin olun. Alt dize dizenin başında bulunursa, strpos 0 değerini döndürür, bu == veya != operatörleri false 'a dönüştürürdü.

Bu örnekte gösterildiği gibi, aramayı dizenin başlangıcından belirli sayıda karakterle başlatmak için bir uzaklık belirtebilirsiniz:

/* strpos argümanları: * konu dizgisi (aka samanlık), arama dizgisi (iğne), ofset (isteğe bağlı) */ // $str'daki 10 karakterinden "ihtiyaç" aramaya başla$pos = strpos ($str , "ihtiyaç" , 10 ) ; // yirmi

Aramayı karakter 10'dan başlattığınızda sonuç 20'dir, iğne kelimesinin başlangıcının dizin konumu.

strrpos

strrpos işlevi, bir dizede bir alt dizenin son oluşumunun konumunu bulur:

// aramalar için kullanılacak örnek dize$str = "Samanlıkta iğneyi bulmalıyız."; // $str içindeki "ihtiyacın" son geçtiği yeri bul$pos = strrpos ($str , "ihtiyaç" ); // yirmi

strrpos işlevi ayrıca, pozitif veya negatif olabilen isteğe bağlı bir ofset parametresi sağlar. Ofset pozitifse, dizenin başlangıcındaki bu sayıda karakter arama dışında bırakılır. Aşağıdaki örneği göz önünde bulundurun:

// ilk 3 karakter hariç sağdan "Biz" için arama yapın$pos = strrpos ($str , "Biz" , 3 ) ; var_dump ($konum); // bool(yanlış)

Arama ilk üç karakteri hariç tuttuğunda "Biz" bulunamadığından sonuç yanlıştır.

Ofset negatifse, dizenin sonundaki o kadar çok karakter aramadan çıkarılır. Negatif bir ofset belirten iki arama ile gösteriyoruz:

// son 5 karakter hariç sağdan "hay" için arama yapın$pos = strrpos ($str , "hay" , - 5 ) ; // int(34) // son 10 karakter hariç sağdan ara$pos = strrpos ($str , "hay" , - 10 ) ; // bool(yanlış)

Arama son 10 karakteri hariç tuttuğunda "hay" bulunamadığından yukarıdaki son sonuç yanlıştır.

Arama sağdan başlasa bile, strrpos işlevinin dönüş değerinin dizenin başından itibaren konumu verdiğine dikkat edin.

stripolar ve stripolar

strpos ve strrpos işlevleri, büyük/küçük harfe duyarlı aramalar gerçekleştirir. PHP, büyük/küçük harfe duyarsız aramalar gerçekleştirmek için stripos ve strripos işlevleri sağlar. Tıpkı büyük/küçük harfe duyarlı eşdeğerleri gibi çalışırlar:

// aramalar için kullanılacak örnek dize$str = "Samanlıkta iğneyi bulmalıyız."; // "biz" için büyük/küçük harfe duyarsız arama yap$pos = şeritler ($str , "biz" ); // int(0) // "İhtiyaç" için sağdan büyük/küçük harfe duyarsız arama yap$pos = strripos ($str , "İhtiyaç" ); // int(20)

"We" için büyük/küçük harfe duyarsız arama, 0 ile sonuçlanır ve bu, arama yaptığımız dizenin başında bulunduğunu gösterir. Sağdan "İhtiyaç" için büyük/küçük harfe duyarsız arama (strripos kullanarak), onu 20 konumunda bulur.

strstr

strstr işlevi, ikinci için ilk dize bağımsız değişkenini arar. İkincisi ilkinde bulunursa, strstr, orijinal dizenin ilk bulunan oluşumdan başlayarak dizenin sonuna kadar olan kısmını döndürür.

// örnek dizge $str = "Samanlıkta iğneyi bulmalıyız."; // $str $newstr = strstr ($str , "the" ) içinde "the"yi arayın; var_dump($newstr) ; // string(27) "samanlıktaki iğne."

strstr işlevi, orijinal dizenin geri kalanıyla birlikte bulduğu ilk "the" öğesini döndürür.

strstr öğesine üçüncü bağımsız değişken olarak true iletirseniz, orijinal dizenin kısmı önceki bulunan dize döndürülür:

// $str'nin "the"den önceki kısmını döndürmek için true değerini iletin$newstr = strstr ($str , "the" , true ) ; var_dump($newstr) ; // string(16) "Bulmalıyız"

Bu sefer strstr işlevi, dizgedeki ilk "the" den önceki her şeyi döndürür.

PHP ayrıca, büyük/küçük harfe duyarsız bir arama gerçekleştirmesi dışında, strstr ile tamamen aynı şekilde çalışan stristr işlevini de sağlar.

strrchr

strrchr işlevi, ikinci argümanda belirttiğimiz karakter için sağdan ilk dize argümanını arar. İşlev, o karakterin bulunan örneğinin konumundan dizenin sonuna kadar dizenin bölümünü döndürür:

// örnek dizge $str = "Samanlıkta iğneyi bulmalıyız."; // $str içinde sağdan "s"yi ara$newstr = strstr ($str , "s" ); var_dump($newstr) ; // string(6) "yığın."

strstr'den farklı olarak, ikinci argüman birden çok karakterden oluşuyorsa, yalnızca ilkinin kullanıldığına dikkat edin:

// çok karakterli ikinci argümanla test et$newstr = strrchr ($str , "the" ); var_dump($newstr) ; // string(5) "yapıştırma."

"haystack" döndürmek yerine, strrchr işlevi "tack" döndürür ve aramaya ikinci bağımsız değişkenin yalnızca ilk harfini uygular.

(PHP 4, PHP 5, PHP 7)

ob_start- Çıktı Arabelleğe Almayı Etkinleştirme

Tanım

bool ob_start ([ çağrılabilir$output_callback = HÜKÜMSÜZ [, int $yığın_boyutu = 0 [, int $bayraklar = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

Bu özellik, çıktı arabelleğe almayı etkinleştirir. Çıktı arabelleğe alma etkinse, komut dosyası çıktısı gönderilmez (başlıklar hariç), ancak dahili bir arabellekte saklanır.

Bu dahili ara belleğin içeriği, kullanılarak bir dize değişkenine kopyalanabilir. ob_get_contents(). Dahili arabelleğin içeriğini görüntülemek için şunu kullanın: ob_end_flush(). Alternatif olarak, kullanabilirsiniz ob_end_clean() arabelleğin içeriğini yok etmek için.

Dikkat

Bazı web sunucuları (Apache gibi), geri arama işlevi çağrıldığında betiğin çalışma dizinini değiştirir. kullanarak geri getirebilirsiniz. chdir(dirname($_SERVER["SCRIPT_FILENAME"])) geri arama işlevinde.

Çıktı tamponları yığına itilir, yani arama yapmasına izin verilir. ob_start() başka bir aktif aradıktan sonra ob_start(). Bu durumda aramak gerekir ob_end_flush() uygun sayıda kez. Birden fazla geri arama etkinse, çıktı, yuvalama sırasına göre her biri için sırayla filtrelenir.

Parametre Listesi

İsteğe bağlı bir output_callback parametresi ayarlayabilirsiniz. Bu işlev, argüman olarak bir dize alır ve ayrıca bir dize döndürmesi gerekir. Sıfırlama (gönderme) veya temizleme (kullanarak) sırasında çağrılır. ob_flush(), ob_clean() veya benzer işlevler) veya isteğin sonunda çıktı arabelleği tarayıcıya boşaltılırsa. output_callback işlevi çağrıldığında, arabelleğin içeriğini alır ve çıkış arabelleğinin tarayıcıya gönderilmesi için güncellenmiş içeriği döndürmesi gerekir. output_callback geçerli bir işlev değilse, belgelenen işlev geri dönecektir YANLIŞ. Bu parametre için fonksiyon açıklaması:

Sicim işleyici (dize $tampon [, int $faz ])

Tampon Çıkış arabelleğinin içeriği. evre Sabitlerin bit maskesi PHP_OUTPUT_HANDLER_*.

output_callback dönerse YANLIŞ, ardından orijinal bilgiler değişmeden tarayıcıya gönderilir.

output_callback parametresi, bir değer iletilerek yoksayılabilir HÜKÜMSÜZ.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() ve ob_start() davranışları tahmin edilemez olduğundan geri arama işlevlerinden çağrılamaz. Arabelleğin içeriğini silmek istiyorsanız, geri arama işlevinden "" (boş bir dize) döndürün. Ayrıca işlevleri çağıramazsınız. print_r($ifade, doğru) veya vurgu_dosyası($dosyaadı, doğru)çıktı arabelleğe alma geri arama işlevlerinden.

Yorum:

PHP 4.0.4'te işlev ob_gzhandler() sıkıştırılmış web sayfalarını destekleyen web tarayıcılarına gz kodlu veri göndermeyi kolaylaştırmak için tanıtıldı. ob_gzhandler() tarayıcı tarafından kabul edilen içerik kodlamasının türünü belirler ve çıktıyı uygun şekilde döndürür.

Parça boyutu

İsteğe bağlı parça_boyutu parametresi iletilirse, yığın_boyutu boyutundan büyük veya eşit herhangi bir çıktıdan sonra arabellek temizlenir. Varsayılan değer 0 arabellek kapatıldığında çıkış işlevinin çağrılacağı anlamına gelir.

PHP 5.4.0'dan önce, değer 1 parametreyi ayarlayan özel bir değerdi Parça boyutu 4096'da.

Flags parametresi, çıktı arabelleğinde gerçekleştirilebilecek işlemleri kontrol eden bir bit maskesidir. Varsayılan olarak, çıktı arabelleğinin temizlenmesine, temizlenmesine ve silinmesine izin verir; bu, | | , veya PHP_OUTPUT_HANDLER_STDFLAGS Bu kombinasyonun kısaltması olarak.

Her bayrak, aşağıda açıklandığı gibi bir dizi işleve erişimi kontrol eder:

Devamlı Fonksiyonlar
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(), ob_end_clean(), ve ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush(), ve ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), ve ob_get_flush().

Dönüş Değerleri

İadeler DOĞRU başarıyla tamamlandıktan sonra veya YANLIŞ bir hata durumunda.

Değişikliklerin listesi

Sürüm Tanım
7.0.0 Eğer ob_start()çıktı arabelleği geri çağırma işlevi içinde kullanılırsa, bu işlev artık bir hataya neden olmaz E_ERROR, ve bunun yerine arayacak E_RECOVERABLE_ERROR, üçüncü taraf hata işleyicilerin onu yakalamasına izin verir.
5.4.0 Üçüncü parametre ob_start() boole'den değiştirildi ( boole) silme parametresinin (buna ayarlandığında YANLIŞ arabelleğin komut dosyası bitene kadar silinmesini engelledi) bir tamsayıya ( tam sayı) bayraklar parametresi. Ne yazık ki bu, PHP 5.4.0'dan önce üçüncü parametreyi kullanan kod için bir API uyumsuzluğu olduğu anlamına gelir. Her iki sürümle de uyumlu olması için kodla nasıl çalışılacağını anlamak için bayrak örneğine bakın.
5.4.0 Parametre Parça boyutu yüklü 1 , şimdi çıktı arabelleğine 1 bayt verir.
4.3.2 İşlev geri dönecek YANLIŞ output_callback yürütülemezse.

Örnekler

Beispiel #1 Kullanıcı tanımlı geri arama örneği

İşlev geri çağırma ($buffer )
{
// tüm elmaları portakallarla değiştir
dönüş (str_replace("elmalar", "portakallar", $tampon));
}

Ob_start("geri arama");

?>


Elma ile armudu kıyaslamak gibi.






ob_end_flush();

Hey Habr!

Bugün, yeni başlayan web yöneticilerine php'de çıktı arabelleğe almayı kullanmanın çeşitli düzgün yollarını tanıtmak istiyorum. Deneyimli web yöneticilerinin burada yararlı bir şey bulması pek olası değildir. Rağmen - kim bilir?

Hepinizin bildiği gibi, php'de çıktı arabelleğe alma, "ob_" ile başlayan bir dizi işlev tarafından kontrol edilir. En önemlisi ob_start'tır. Başlatıldığında, sonraki çıktıyı, yani her türlü print(), echo ve benzerini toplar ve daha sonra ziyaretçiye bir html sayfası şeklinde verilecektir. Ve görüntülemeden önce arabelleğe almaya başladıysak, bu neredeyse bitmiş sayfayla nihayet bir şeyler yapmak mümkün olacak.


Örneğin, harici sitelere giden tüm bağlantıları filtrelemek istiyoruz.

Australopithecus'un baltası kadar eski olan forumumuz, çok sayıda spam göndericiyle dolup taşıyor ve ziyaretçiyi sefahat, tek kollu haydutlar ve siyasi ajitasyonla dolu yerlere çekiyor. js'yi izleme ile kullanabiliriz, ancak bunun yerine tüm bu bağlantıları şu şekilde değiştirmek istiyoruz:

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

Yöntem en etkili olmayabilir, ancak etkili olabilir. Redirect.php'yi bir filtre ve bir kara liste ile yazdık ve şimdi binlerce forum sayfasındaki tüm bağlantıları dönüştürmemiz gerekiyor. ob_start ve birkaç düzenli ifadenin yardımıyla bunu sadece birkaç satırda yapabiliriz:

İşlev f_callback($buffer)( $buffer = preg_replace("#http://(www.)?myoldforum\.ru/#","/",$buffer); $buffer = preg_replace("#href="http ://([^"]*)"#","#href="/redirect\.php\?url=$1",$buffer); return $buffer; ) ob_start(f_callback);

Şimdi bu kodu index.php'nin başına veya sunucunun sayfaları görüntülerken eriştiği başka bir dosyaya ekleyerek ihtiyacımız olanı alıyoruz.

İçeriği bu şekilde değiştirerek, motorun yöntemleriyle sınırlı kalmıyoruz. Bu çok değerli. Örneğin, bir eklenti ekleyebilirsiniz:

function create_plugin()( /*bir şey üret*/ ) function f_callback($buffer)( /*...*/ $buffer = str_replace ("",generate_plugin(),$buffer); /*...*/ return $buffer; ) ob_start("f_callback");

Artık içeriğe eklediğimiz yerde, almak istediklerimiz karşımıza çıkacak. Kullanımlarından biri, bir web sitesi sayfasına bir js widget'ı eklemektir. Örneğin, Yandex haritaları. Genellikle bu zor değildir, ancak bazen kötü yazılmış bir web sitesi sayfası düzenleyicisi tırnak işaretleri ve küme parantezlerinden kaçarak widget'ı bozar. Gördüğünüz gibi, bu sorun kolayca çözülür.

Çıktı arabelleğiyle çalışmak için php araç takımı zengindir ve yalnızca ob_start ile sınırlı değildir. Yukarıdaki teknikler, tüm sayfada çalıştıkları için bazı durumlarda gereksiz yere kaynak yoğun ve hantaldır. Vahşi doğaya girmek istemediğimiz, ancak kesinlikle düzeltmemiz gereken bir şeyin oluşturulması etrafında şablonda bir sarmalayıcı oluşturarak bunun yalnızca bir kısmını işleyebiliriz:

(BÜYÜK ÇILGIN ŞEY OLUŞTUR)

Tüm bu dönüşleri zaten fark etmiş olmalısınız: “Tırmanmak istemiyorum”, “tyrannosaurus sandalyesi kadar eski”, “çarpık editör” ... İdeal bir dünyada, çıktı tamponunun etrafındaki mermilere ihtiyaç yoktur. ob_start ile yapılabilecek her şey teorik olarak onsuz da yapılabilir. Bu teknik bazen projenin kodunu karıştırır, birçoğu amacını yalnızca ob_gzhandler'a sıkıştırma için çıktı vermekte görür ve diğer durumlarda kullanımını tehlikeli olarak görür. Ancak çoğu zaman, çıktı kontrolü basitçe vazgeçilmezdir.

Özellikle derine inmek istemiyorsanız.