سؤال

لقد حصلت على السيناريو الذي يأخذ المستخدم تحميل RTF الوثيقة يدمج في شخص البيانات في رسالة (الاسم, العنوان, الخ), و هل هذا الحل.أنا دمج محتويات الرسالة ، ثم الجمع بين هذا مع دمج محتويات الرسالة لجميع الناس السجلات.

عاطفي أنا الجمع بين واحد RTF الوثيقة في حد ذاته للعديد من الناس السجلات التي تحتاج إلى دمج الرسالة.ومع ذلك, أنا بحاجة أولا إلى إزالة إغلاق RTF العلامات وفتح RTF توصيف لكل دمج أو آخر RTF لن تجعل بشكل صحيح.هذا يبدو وكأنه عمل التعبيرات العادية.

أساسا أنا بحاجة إلى التعابير المنطقية التي من شأنها إزالة السلسلة بأكملها:

} \صفحة أي شيء \par

هذا regex أن تطابق هذه:

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

لذا أنا يمكن أن تجعل فقط:

crap
\page
more crap

هو RegEx النهج الأفضل هنا ؟

تحديث:لماذا يجب استخدام RTF ؟

أريد أن تمكن المستخدم من تحميل نموذج رسالة أن النظام ثم استخدم لإنشاء دمج الحروف.منذ RTF هو نص عادي, أنا يمكن أن تفعل ذلك بسهولة جدا في التعليمات البرمجية.أعلم, RTF كارثة من المواصفات, ولكن أنا لا أعرف أي بديل جيد.

هل كانت مفيدة؟

المحلول

أود أن مسألة استخدام RTF في هذه الحالة.انها ليست واضحة تماما بالنسبة لي ما كنت تحاول القيام به عموما ، لذا لا أستطيع بالضرورة تشير إلى أي شيء أفضل ، ولكن إذا كان يمكنك محاولة لشرح المشروع الخاص بك على نطاق أوسع ، ربما كنت يمكن أن تساعد.

إذا كان هذا هو حقا الطريقة التي تريد أن تذهب على الرغم من هذا regex أعطاني إخراج الصحيح بالنظر إلى المدخلات الخاصة بك:

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

نصائح أخرى

لهذا أستطيع أن أقول إك إك إك.ومع ذلك ، rcar هو cludge ربما سوف تعمل ما عدا بعض غريب الحافة حالة RTF لا نهاية في هذا النموذج ، أو الوثيقة-أنماط واسعة تشمل معلومات هامة تماما عبث التنسيق أو أي من العديد من وسائط الفشل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top