Ben Kohana kütüphanenin temel işlevi, text::auto_p() fonksiyonunu değiştirerek duyuyorum.
Fonksiyonu "steroid nl2br ()" olarak tanımlıyor. Esasen, bu <br />
tek satır sonlarını sağlar, ancak çift satır sonları <p>
etiketleri ile çevrilidir.
Onunla bulduk sınırlama o olacak ama <br />
s <pre>
öğesi. Bu benim istediğim değil, hangi çift yeni hatları oluşturmak olacaktır. Ben bir regex ile ön elemanları almak için bir değişiklik yaptık ve <br />
çıkarmaz, bir geri çağırma iyi çalışıyor.
Ancak, asıl sorun auto_p()
'd alır benim metin kod örnekleri var, ve ben (okunabilmesi için) girinti korumak için ihtiyaç vardır. Ne yazık ki benim için, fonksiyon şeritler lider ve hatları üzerinde sondaki boşlukları.
İşte lider alan şeritler regex olduğunu
$str = preg_replace('~^[ \t]+~m', '', $str);
Ben iyi regex gurusu değilim, ama diyor ki eminim "en az bir ve boş bir dize ile bunların yerine orada önde gelen boşlukları ve sekmeleri alın."
Ben bu satırı kaldırarak denedim, ama o katacak <br />
burada ben kesinlikle bunları istemiyorum - bir durumda, böyle çıktı başlamıştı
<ul><br />
<li>something</li>
</ul>
Nasıl bir <pre>
elemanın içinde önde gelen uzay şerit değil bu regex veya kodunu değiştirmek istiyorsunuz?
The original helper function from Kohana is available here. (Neredeyse altına gidin).
Ben birkaç 'bir HTML ayrıştırıcı kullanın' tipi cevaplar alırsınız biliyorum - ve doğru olabilir iken - mevcut kod sadece regex kullanır, ve ben (ben vb kütüphane dahil etmek zorunda değilsiniz) basit bir çözümü tercih ederim .
Zaman ayırdığınız için teşekkürler.