PHP ile düz metin çıkış, HTML kodunu Biçimlendirme

0 Cevap php

Ben veritabanından bazı kullanıcı gönderilen HTML kodunu alıp bu işlevi vardır:

function Code($code)
{
    return "<pre><code>".nl2br(htmlspecialchars($code))."</code></pre>";
}

Ben sadece echo code($query->row('html')); gibi çağıracaksın. Benim soru 'derinlik' yoksun biliyorum, ama bunu yapmak için en iyi yolu nedir? Veya Çıktılanan biçimlendirme vb bazı makinelerde, doğru (örneğin JavaScript enjeksiyonları), ya da çıkış ayrıştırıldı olabilir?

Teşekkürler!

Kriko

EDIT: I have a new (related) question: I highlight_string() kullanarak dizeyi vurgulamak istiyorum. Ancak, düzgün çalışması yapamazsınız. I think Nedenini anlıyorum ama ben bu düzeltmek nasıl çok emin değilim.

function Code($code)
{
    return "<pre><code>".highlight_string(nl2br(htmlspecialchars($code)))."</code></pre>";
}

Ben herşeye highlight_string() kullanıyorum görebileceğiniz gibi. Ancak, çıkış yerine karakter varlıkları (&lt;, '>', vb) olarak verilir, tüm vurgulanır değil. Ben böyle bir şey için fonksiyon sıralamasını yeniden düzenler ise:

return "<pre><code>".nl2br(htmlspecialchars(highlight_string($code)))."</code></pre>";

Ben karakter kişiler çıktı olmadığını bulmak, ama dize hala vurgulanır değil. Netleştirmek için, ben de uygulanan metin rengini etkileyecek hiçbir CSS biçimlendirme. Ayrıca, benim PHP ayarlarını kontrol ettik ve orada belirtilen kesinlikle vurgulayarak renkleri vardır.

0 Cevap