-1

wysiwyg エディター (ckeditor) を使用しており、ユーザーがこれらのタグを使用できるようにする必要があります。

a (with only `rel=nofollow`), ul, ol, li, p, strong, br

また、ウェブサイトを危険にさらす可能性のある css や js などを挿入しないようにする必要もあります。

strip_tagscss が許可されているため動作しません - たとえば、これは動作してはなりません:

<p style="margin:1000px;"> hello </p>
4

2 に答える 2

-1

strip_tags()特定のタグのみを許可するために使用できます。

<?php
    $text = '<p>Test <span>paragraph</span>.</p><!-- Comment --> <a href="#fragment">Other text</a>';
    echo strip_tags($text);
    echo "\n";

    // Allow <p> and <a>
    echo strip_tags($text, '<p><a>');
?>

上記は次のように出力されます。

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>

CSS の回避策

//strip out inline css and simplify style tags 
$search = array('#<(strong|b)[^>]*>(.*?)</(strong|b)>#isu', '#<(em|i)[^>]*>(.*?)</(em|i)>#isu', '#<u[^>]*>(.*?)</u>#isu');

strip_tagshas は、スタイル タグ内の css がドキュメント テキストではないことを認識しません。これを修正するには、次のようにします。

$htmlstring = preg_replace("'<style[^>]*>.*</style>'siU",'',$htmlstring);
于 2013-06-19T15:03:49.990 に答える