İyi PHP Metin Sayfalandırması

4 Cevap php

Ben HIV önlenmesi için bir bilgi depolama sitesinde çalışıyorum. Işbirlikçileri sürü bir TinyMCE GUI aracılığıyla makaleler yayınlayacaklar.

Grafik tasarımcıları, tabii ki, sayfa uzunlukları üzerinde kontrol istiyorum. Onlar sayfasındaki içeriğin yüksekliğine göre otomatik sayfalama istiyorum.

Herkes bu yönetmek için AJAX kod gördük?

Herkes bölme kelime veya etiketleri önlemek için karakter sayısı ve göz arkasında regex yapabilirsiniz PHP kodu görülen Engelleme?

Herhangi bağlantılar çok takdir!

4 Cevap

Bu kesin bir neden yok olması gerekmez Eğer (herhalde en yakın paragrafa) sayfasını kırmak için uygun bir yer belirlemek için basit bir kelime sayısı işlevini kullanamazsınız. Bile dikkate görüntülerin boyutunu dikkate alarak, görüntüler sonrası olup olmadığını sayfa başı kelimeleri azaltmak için şimdiye kadar gidebiliriz.

Gerçi hızlı çirkin alabilir, bunu yapmak için en iyi yolu, onları elle dışarı ayrıştırmak makalede bir etiketi ile sayfa bölücüler ayarlamak için izin olduğunu düşünüyorum. [PageBreak] gibi bir şey oldukça basittir ve herhangi bir otomatik çözüm çok daha mantıklı ve okunabilir sayfa sonları elde edeceğini alırsınız.

Sadece karakter sayısı konusunda endişelenmenize gerek yok, ayrıca görüntü veya yükseklik kadar sürebilir sayfalarında gömülü nesnelerin başka türlü varsa görüntü yükseklikleri konusunda endişelenmenize gerek. Karakter sayısı da size paragraf yapısı hakkında bir fikir (birçok paragraflar içeren bir sayfa daha fazla karakterden oluşan tek bir uzun paragraf kısa olabilir) vermeyecektir.

JavaScript kullanmak için istekli iseniz, bu, ideal bir çözüm olarak müşteriye tüm yazı göndermek ve JavaScript pagination halledeyim olabilir. Istemci itibaren görüntü ve nesne yükseklikleri tespit edebilir. Eğer sayfaları gerektiğini düşünüyorum nerede işaretçileri yerleştirmek için PHP kullanmak, ve sonra bunun gerçekleşmesi için JavaScript kullanabilirsiniz. Sayfaları çok uzun sürece ben birkaç XMLHttpRequest'ler (AJAX) yapmanız gerekir sanmıyorum.

Sadece düz bir PHP çözüm için de basittir, ancak satır sayıları yönetme meselesi ile ilgili değiliz muhtemelen ideal değil. Eğer sayfada yeri belirlemek için bir GET değişkeni kullanabilirsiniz.

Bu aradığınız tam cevap olabilir, ama olmayabilir de Gerçekten sitenizin sabit bir uzunluğa sahip olmadığından emin olun. Esnek genişliği en gerçekten güzel, ama yükseklik kadar kritik değildir.

Özellikle böyle bir neden, bir içerik-ağır site için; esnek yükseklikleri gerektirecek adil.

Apphacker tarafından belirtildiği gibi, gerçekten PHP içinde yükseklik algılayamaz ve ne tür javascript ile sıkışmış demektir. Kesinlikle çağrı ile sıkışmış iseniz gerçek bir bölümünde kırmak, böylece yerine orta-kelime, cümle, vb, içerik yazarları sayfayı kopmak için ne zaman karar vermek muhtemelen iyidir

Edit: kullanılabilirlik etrafında değil başka bir yol, tasarım dikte gerekir. Sen yanlış yapıyorsun ;)

A good pagination is not a simple task. That's not a simple matter of coding. Scientific research by Plass (1981) proved that the optimal page breaking is in general NP-hard. You should worry about floating figures, line breaks, different font styles,etc.

Ve bir HTML motoru tek şey bir DOM ağacına bir sayfa ayrıştırma yardımcı olabilir. Ne boyutları hakkında? Evet yazı genişliği ve yazı yüksekliği, kenar boşluklarını ve padding, resim boyutları olabilir. Ama hepsi bu. Tüm düzen omuzlarında olduğunu. Ve javascript yapıyor ... meh ...

Yani otomatik sabit yükseklik pagination tek uygulanabilir çözüm sunucu tarafı olacaktır. PrinceXML şu anda iyi HTML2PDF dönüştürücü. Ama bir sürü maliyeti.

Farklı sayfa yükseklikleri ile iyi iseniz, epalla önerisini kullanabilirsiniz. Ama bu da göründüğü kadar basit değildir.

Pagination için bazı referanslar: