2009-12-09 23 views
36

PHPでHtmlエンコードする最も簡単な方法は何ですか?PHPでHtmlエンコード

+3

私は彼がASP.NET方法 "htmlencode" とPHPと同等の意味だと思います。これは、 '<'のような文字を<に置き換えることによって入力をサニタイズするために使用されます。彼はそれらを剥がしたくない。 –

答えて

41

エンコードすると、該当するすべての文字がHTMLエンティティに変換されますか?

htmlspecialcharsまたは htmlentities

あなたはすべてのHTMLタグを削除したい場合は、strip_tagsを使用することができます。

strip_tags

注:これは、すべてのXSS attacks

+1

私は使用しなければならないshureではない。私はXSS-atacksを避けるためにこれが必要です。 –

+1

次に、htmlspecialcharsがそのトリックを行う必要があります。または、filter_varをFILTER_SANITIZE_SPECIAL_CHARSフィルタとともに使用します。 – Arkh

+6

'htmlspecialchars'>' htmlentities'です。非ASCII文字のHTMLエンティティは過去のものでなければなりません。 UTF-8を使用して文字をまっすぐにドロップしてください。 – bobince

4

Encode.phpを停止することはありませんが

<h1>Encode HTML CODE</h1> 

<form action='htmlencodeoutput.php' method='post'> 
<textarea rows='30' cols='100'name='inputval'></textarea> 
<input type='submit'> 
</form> 

htmlencodeoutput.php

<?php 

$code=bin2hex($_POST['inputval']); 
$spilt=chunk_split($code,2,"%"); 
$totallen=strlen($spilt); 
$sublen=$totallen-1; 
$fianlop=substr($spilt,'0', $sublen); 
$output="<script> 
document.write(unescape('%$fianlop')); 
</script>"; 

?> 
<textarea rows='20' cols='100'><?php echo $output?> </textarea> 

あなたは、このようにHTMLをエンコードすることができます。

0

これを試してみてください:

<?php 
    $str = "This is some <b>bold</b> text."; 
    echo htmlspecialchars($str); 
?> 
関連する問題