Gebelik fonksiyonları üzerinde maksimum karakter sınırı?

1 Cevap php

(Ben sadece daha yönetilebilir parçalara ayırmak, hiçbir şey yerini tutmaz) sitemde tüm çıktı kapmak ve sonra tarayıcıya göndermeden önce bir işlem fonksiyonu sayesinde çalıştırmak için çıkış tamponlama kullanın. O (240 ülkeden yaklaşık) veritabanında her ülke için bir etiket dışarı liste çünkü bu özel durumda, çıktı büyük bir miktar var. Sorun tam olarak, benim preg_match fonksiyonları kesinlikle hiçbir şey yapmaz ve sonuç hiçbir verir, üzerinden atlanır almak gibi görünüyor olmasıdır. Ben etiketlerin (belirli bir bölümü, karakterleri azaltmak için sadece rastgele adet) parçalarını kaldırmak, ancak daha sonra preg_match fonksiyonları tekrar çalışıyor. Ben etiketten kaldırmak ne önemi görünmüyor, sadece sürece ben çok karakterleri kaldırmak gibi bu gibi görünüyor. Gebelik fonksiyonları işleyebilir ne kapak çeşit var mı veya dışarı zaman içinde taranacak çok fazla veri varsa olacak?

Edit: İşte yoluyla çalıştırılan fonksiyondur.

public function boom($data) {
    $number = preg_match_all("/(<!-- ([\w]+):start -->)\n?(.*?)\n?(<!-- \\2:stop -->)/s", $data, $matches, PREG_SET_ORDER);
    if ($number == 0) $data = array("content" => $data);
    else unset($data);
    foreach ($matches as $item):
        //$item[3] = preg_replace("/\n/", "", $item[3], 1);
        if (preg_match("/<!-- breaker -->/s", $item[3])) $data[$item[2]] = explode("<!-- breaker -->", $item[3]);
        else $data[$item[2]] = $item[3];
    endforeach;
    //die(var_dump($data));
    return $data;
}

Ve burada sayfasına gönderilen işlenmemiş çıktı. Ben değişken 0 sonuç döndürüyor başında preg_match_all olduğunu tespit ettik, bu yüzden işlevi sadece o $data['content'] içine alınan tüm dizeyi atma ve her şeyi atlıyor.

http://pastebin.com/iGfM6gxx

Onları birlikte çöken, yeni hatları etiketleri koyarak denedim, hiçbir şey iş gibi görünüyor. Ben rastgele parçalarını kaldırmak Ama eğer yukarıda açıklandığı gibi, o para cezasına geçer. Fonksiyonu normal uzunlukta her sayfası ile mükemmel çalışıyor.

1 Cevap

bu regex ve veri görmeden söylemek zor, ama pcre.backtrack_limit / pcre.recursion_limit değiştirmeye çalışın (http://www.php.net/manual/en/pcre.configuration.php)