PHP, RTF dosyaları birleştirmek (REGEX)

2 Cevap php

Ben bir kullanıcı yükledi RTF belgesi alır ve harf (isim, adres, vb) bazı kişi veri birleştirir, ve birden fazla kişi için bunu yapan bir komut dosyası var. Daha sonra bütün insanların kayıtları, sonraki birleştirme harf içeriği ile birleştiren, mektup içeriğini birleştirmek.

Duygulanım Ben mektup birleştirme için gereken hangi birçok kişi kayıtları için kendi içine tek bir RTF belgesi birleştirerek ediyorum. Ancak, ilk kapanış RTF biçimlendirme ve her RTF biçimlendirme açılması birleştirme veya başka RTF doğru işlenmez kaldırmak gerekir. Bu düzenli ifadeler için bir iş gibi geliyor.

Esasen ben tüm dizeyi kaldıracak bir regex gerekir:

} \ N \ sayfası ŞEY \ par

Örnek, bu regex bu maç olacaktır:

crap
}
\page{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 September 30, 2008\par
more crap

Yani ben sadece bunu yapabilir:

crap
\page
more crap

RegEx burada iyi bir yaklaşım mı?

GÜNCELLEME: Neden RTF kullanmak zorunda mı?

Ben sistemi daha sonra birleştirilmiş harfleri oluşturmak için kullanabileceğiniz bir mektup formu yüklemek için kullanıcı etkinleştirmek istiyorum. RTF düz metin olduğu için, ben kod oldukça kolay yapabilirsiniz. Biliyorum, RTF bir spec bir felaket olduğunu, ancak herhangi bir diğer iyi bir alternatif bilmiyorum.

2 Cevap

Ben bu durumda RTF kullanımını soru. Bu genel yapmak için çalışıyoruz ne benim için tamamen açık değil, bu yüzden mutlaka daha iyi bir şey önermek değil, ancak daha geniş bir şekilde projeyi açıklamak için deneyebilirsiniz eğer, belki yardımcı olabilir.

Bu gerçekten olsa gitmek istediğiniz yolu ise, bu regex bana girdi verilen doğru çıktı verdi:

$output = preg_replace("/}\s?\n\\\\page.*?\\\\par\s?\n/ms", "\\page\n", $input);

Bunun için ben Tran Tran Tran söyleyebiliriz. Bununla birlikte, rcar en cludge muhtemelen RTF aslında formda bitmiyor bazı garip kenar davayı engelleme, çalışacak, ya da belge genişliğinde stilleri tamamen biçimlendirme, ya da pek çok arıza modları başka işler karışıyor önemli bilgiler içermektedir.