2009-12-09 18 views
36

Qual è il modo più semplice per codificare Html in PHP?Codifica HTML in PHP

+3

Credo che significa che il php equivalente al metodo di ASP.NET "HTMLEncode". È usato per sanatizzare l'input sostituendo caratteri come '<' con <. Non vuole spogliarli via. –

risposta

41

Per codifica, vuoi dire: convertire tutti i caratteri applicabili in entità HTML?

htmlspecialchars o htmlentities

È inoltre possibile utilizzare strip_tags se si desidera rimuovere tutti i tag HTML:

strip_tags

Nota: Questo non interrompere tutte le XSS attacks

+1

Non sono shure che devo usare. Ho bisogno di questo per evitare gli attacchi XSS. –

+1

Quindi htmlspecialchars dovrebbe fare il trucco. Oppure usa filter_var con il filtro FILTER_SANITIZE_SPECIAL_CHARS. – Arkh

+6

'htmlspecialchars'>' htmlentities' nella maggior parte dei casi. Le entità HTML per i caratteri non ASCII dovrebbero essere una cosa del passato; basta usare UTF-8 e rilasciare i caratteri direttamente. La priorità sarà – 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> 

È possibile codificare HTML come questo.

0

Prova questo:

<?php 
    $str = "This is some <b>bold</b> text."; 
    echo htmlspecialchars($str); 
?>