2009-12-09 13 views
36

Jaki jest najłatwiejszy sposób kodowania HTML w PHP?Kodowanie html w PHP

+3

myślę, że oznacza równowartość PHP metody ASP.NET "HtmlEncode". Służy do sanatyzacji danych wejściowych poprzez zastąpienie znaków takich jak "<" przez <. On nie chce ich rozebrać. –

Odpowiedz

41

Przez kodowanie, czy masz na myśli: Konwertuj wszystkie stosowne znaki na encje HTML?

htmlspecialchars lub htmlentities

Można również użyć strip_tags jeśli chcesz usunąć wszystkie znaczniki HTML:

strip_tags

Uwaga: To nie zatrzymać wszystkie XSS attacks

+1

Nie jestem shure, którego muszę użyć. Potrzebuję tego, aby uniknąć ataków XSS. –

+1

Następnie htmlspecialchars powinno załatwić sprawę. Lub użyj filt_var z filtrem FILTER_SANITIZE_SPECIAL_CHARS. – Arkh

+6

'htmlspecialchars'>' htmlentities' w większości przypadków. Elementy HTML dla znaków spoza ASCII powinny należeć do przeszłości; po prostu użyj UTF-8 i upuść znaki prosto. – 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> 

można kodować HTML tak.

0

Spróbuj tego:

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