TinyMCE ile içerik yayınlarken PHP ile biçimlendirme Görüntüyü taşımak için Regex

1 Cevap php

Ben siteme içerik yayınlamak için TinyMCE kullanıyorum. Ben sadece ben içeriğinin sonuna imleci bile, bir paragraf örneğin, başka bir öğe içinde bir resim ekleyebilirsiniz sayede sorun var.

Ben içerik yayınlamak Yani, ben şu anda gibi biçimlendirme ile sonuna kadar:

<p>Text content <img src="blah" /></p><p>Another paragraph</p>

I fark o WordPress ve TinyMCE örnek yer hem de yukarıdaki şekilde uç görüntüler.

Ben başka bir elemanın dışında TinyMCE bir görüntü ekleyebilirsiniz olarak nasıl bir çözüm bulmak mümkün olmuştur, bu yüzden benim içerik yayınlamak, ben düzeltmek mümkün duyuyorum ki benim bir sonraki adım, içerik sunucu tarafı denemek ve değiştirmek için I sona ereceğini, böylece benim db onu kaydetmeden önce biçimlendirme:

<p>Text content</p><img src="blah" /><p>Another paragraph</p>

Herhangi bir vücut Bunu başarmak için yapmanız gereken ne biliyor mu. Regex çalışması gerektiğini biliyorum, ama ne veya nasıl bu yönde kullanmak için emin değilim. Herkes TinyMCE soruna bir çözüm varsa, hatta daha iyi, bu daha iyi olurdu.

Ben açıkçası anında bu istemci tarafında ulaşmak için JS kullanabilirsiniz biliyorum, ama bu ideal çözüm değildir.

Çok teşekkürler,

D

1 Cevap

Don't use RegEx for manipulating HTML nodes! It's not designed for it and is too fragile.

HTML bir Regular dil değil, ve hatta olmayan Düzenli özellikleri ile birçok modern Düzenli İfade uygulamaları desteği, bir regex HTML işlemek için çalışıyoruz hala en iyi zordur.


For a quick-and-dirty solution, you can do:

preg_replace
    ( "/(<img[^>]++>)\s*+(</p>)/gi"
    , "$2$1"
    , $HtmlText
    );


But that will fail with several valid HTML constructs - what you should actually be using is something like PHP Simple HTML DOM Parser to parse the HTML text into a HTML DOM, manipulate that DOM, and then output as text again.