Gli ultimi tutorial di sviluppo web
 

PHP htmlspecialchars() Function

<PHP stringa di riferimento

Esempio

Convertire i caratteri predefiniti "<" (less than) e ">" (greater than) a entità HTML:

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

L'output HTML del codice di cui sopra sarà (View Source) :

<!DOCTYPE html>
<html>
<body>
This is some &lt;b&gt;bold&lt;/b&gt; text.
</body>
</html>

L'uscita del browser del codice qui sopra sarà:

This is some <b>bold</b> text.
Esempio Run »

Definizione e l'utilizzo

Il htmlspecialchars() funzione converte alcuni caratteri predefiniti in entità HTML.

I caratteri predefiniti sono:

  • & (ampersand) diventa & amp;
  • " (double quote) diventa & quot;
  • ' (single quote) diventa & # 039;
  • < (less than) diviene & lt;
  • > (greater than) diviene & gt;

Suggerimento: per convertire entità HTML speciali torna a personaggi, utilizzare il htmlspecialchars_decode() la funzione.


Sintassi

htmlspecialchars( string,flags,character-set,double_encode )

Parametro Descrizione
string Necessario. Specifica la stringa da convertire
flags Opzionale. Specifica come gestire le citazioni, di codifica non valido e il tipo di documento utilizzato.

Gli stili di citazione disponibili sono:

  • ENT_COMPAT - Default. Codifica solo doppi apici
  • ENT_QUOTES - Codifica virgolette doppie e singole
  • ENT_NOQUOTES - Non codificare qualsiasi citazioni

codifica non valida:

  • ENT_IGNORE - ignora codifica non valida invece di avere la funzione ritorna una stringa vuota. Dovrebbe essere evitato, in quanto può avere implicazioni sulla sicurezza.
  • ENT_SUBSTITUTE - sostituisce codifica non valida per un carattere specificato impostato con un carattere di sostituzione Unicode U + FFFD (UTF-8) o & # FFFD; invece di restituire una stringa vuota.
  • ENT_DISALLOWED - Sostituisce punti di codice non validi nel doctype specificata con un carattere di sostituzione Unicode U + FFFD (UTF-8) o & # FFFD;

bandiere aggiuntivi per specificare il tipo di documento utilizzato:

  • ENT_HTML401 - Default. Maneggiare codice come HTML 4.01
  • ENT_HTML5 - Maniglia codice come HTML 5
  • ENT_XML1 - Maniglia codice come XML 1
  • ENT_XHTML - Maniglia codice come XHTML
character-set Opzionale. Una stringa che specifica quale set di caratteri da utilizzare.

I valori consentiti sono:

  • UTF-8 - Default. ASCII compatibile multi-byte a 8 bit Unicode
  • ISO-8859-1 - Europa occidentale
  • ISO-8859-15 - Europa occidentale (aggiunge il simbolo dell'Euro + lettere francesi e finlandesi mancanti in ISO-8859-1)
  • CP866 - DOS-specifici set di caratteri cirillici
  • CP1251 - specifico per Windows charset cirillici
  • CP1252 - charset specifica di Windows per Europa occidentale
  • KOI8-R - Russo
  • BIG5 - cinese tradizionale, utilizzato principalmente in Taiwan
  • GB2312 - cinese semplificato, set di caratteri standard nazionali
  • BIG5-HKSCS - Big5 con estensioni per Hong Kong
  • Shift_JIS - giapponese
  • EUC-JP - Giapponese
  • MacRoman - del set di caratteri che è stato utilizzato da Mac OS

Note: non riconosciuti set di caratteri che saranno ignorati e sostituiti da ISO-8859-1 nelle versioni precedenti a PHP 5.4. Dal PHP 5.4, verrà ignorato una sostituiti da UTF-8.

double_encode Opzionale. Un valore booleano che specifica se per codificare le entità HTML esistente o meno.
  • VERO - Default. Convertirà tutto
  • FALSO - Will not codificare entità HTML esistenti

Dettagli tecnici

Valore di ritorno: Restituisce la stringa convertita

Se la stringa contiene codifica non valida, restituirà una stringa vuota, a meno che l'ENT_IGNORE o bandiere ENT_SUBSTITUTE sono impostati
Versione PHP: 4+
changelog: Il valore predefinito per il parametro personaggio-set è stato cambiato in UTF-8 in PHP 5

ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 e ENT_XHTML sono stati aggiunti in PHP 5.4

ENT_IGNORE stato aggiunto in PHP 5.3

Il parametro double_encode stato aggiunto in PHP 5.2.3

Il parametro di carattere-set è stato aggiunto in PHP 4.1

Altri esempi

esempio 1

Convertire alcuni caratteri predefiniti in entità HTML:

<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>

L'output HTML del codice di cui sopra sarà (View Source) :

<!DOCTYPE html>
<html>
<body>
Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
</body>
</html>

L'uscita del browser del codice qui sopra sarà:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Esempio Run »

esempio 2

Convertire le virgolette a entità HTML:

<?php
$str = 'I love "PHP" .';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>

L'output HTML del codice di cui sopra sarà (View Source) :

<!DOCTYPE html>
<html>
<body>
I love &quot;PHP&quot;.
</body>
</html>

L'uscita del browser del codice qui sopra sarà:

I love "PHP" .
Esempio Run »

<PHP stringa di riferimento