Ben karışık html, özel kod ve ben incelemek ve birkaç uzun wiki sayfalarında sık sık değiştirmek gerekir normal bir metin var. Ben özel bir wiki benzeri bir uygulama ile çalışan ve nasıl uygulama fonksiyonları üzerinde hiçbir kontrole sahip ya da kullanıcı girişi doğrular ediyorum. Kullanıcı eklemek sayfaların düzeni çok özel bir standart düzeni takip ve her zaman sadece belli yerlerde çok belirli bir metni içermelidir - sık sık değiştiren bir standart. Kullanıcıların standardın dışına kadar olan sayfaları eklerseniz, bunlar silinecektir.
Ben el kanıtı-okumak kaynaklara sahip ve tüm bu sayfaları düzeltmek, yani otomasyon tek çözümdür yok. Alternatif platformlar var burada gerekli tam olarak ne zaman bütün bu tabii ki zaman tam bir atık olduğu gerçeği zaten anlaşılmaktadır.
Benim için bu post-doğrulama ve sık restandardization işlemleri otomatik bir PHP tabanlı bir API inşa ettik. Tüm bu karışık metin işlemek için regex desen kurmak mümkün oldum, ve hepsi tek satırları işlemek için iyi çalışır. Ben sorun budur: satır sonları ile uzun metin karşı Kötü oluşmuş regex gibi bağlantı sıfırlar gibi beklenmedik sonuçlara yol açabilir. Ben gidermek için sunucu tarafı günlüklerine erişimi yok. Ben bu nasıl aşılır?
Bu ne var şu anda sadece bir örnektir: niteliklerinden herhangi bir sayı var ve herhangi bir metin sarabilirsiniz {sütun} ve {bölüm} etiketler aşağıda arıyorum. {Section} veya yok olabilir ve ya {} sütununun altında bir veya daha fazla satır olabilir veya olmayabilir, ancak {} sütunun içine sarılmış olması vardır. {} Sütun kendisi veya yok olabilir, ve eğer bu olmuyorsa o zaman bazı varsayılan metin senaryo daha sonra aşağı takılmış gibi, umurumda değil. Ben iç kısmı içeriğini kapmak ve bunun yerine bir html div etiketi sarın istiyorum. Ben şu anda hazırlıksız istimal tam desen hatırlamak değil, ama yeterince yakın ...
$pattern = "/\{column:id=summary([|]?([a-zA-Z0-9-_ ]+[:][a-zA-Z0-9-_ ]+[ ]?))\}(.*)({section([|]([a-zA-Z0-9-_ ]+[:][a-zA-Z0-9-_ ]+[ ]?))\}(.*)\{section\}(.*))?{column\}/s";
$replacement = "{html}<div id='summary'>$7</div>{html}";
$text = preg_replace($pattern, $replacement, $subject);
{Sütunu} ve {bölüm} özelliklerini taşıma ve yeni html div veya bir alt metin yalnızca geçerli HTML parametrelerini geçen bir meydan okuma kendisi, ama yukarıda benim ana odak hemen {bölüm} içinde o (. *) Değeri oluyor Yukarıda bir bağlantı sıfırlama neden olmadan. Herhangi bir işaretçiler?