PHP htmlspecialchars()-funktio
Esimerkki
Muunna määritetyt merkit "<" (pienempi kuin) ja ">" (suurempi kuin) HTML-entiteiksi:
<?php $str = "Tämä on jokin <b>lihavoitu</b> teksti."; echo htmlspecialchars($str); ?>
以上代码的 HTML 输出如下(查看源代码):
<!DOCTYPE html> <html> <body> Tämä on jokin <b>lihavoitu</b> teksti. </body> </html>
以上代码的浏览器输出:
Tämä on jokin <b>lihavoitu</b> teksti.
Määrittely ja käyttö
htmlspecialchars()-funktio muuntaa määritetyt merkit HTML-entiteiksi.
Määritetyt merkit ovat:
- & (ja) muuttuu &
- " (kaksinkertainen lainausmerkki) muuttuu "
- ' (yksinkertainen lainausmerkki) muuttuu '
- < (pienempi kuin) muuttuu <
- > (suurempi kuin) muuttuu >
Vinkki:Jos haluat muuntaa erityiset HTML-entiteetit takaisin merkeiksi, käytä htmlspecialchars_decode() Funktio.
Syntaksi
htmlspecialchars(string,flags,character-set,double_encode)
Parametrit | Kuvaus |
---|---|
string | Välttämätön. Määrittää muunnettavan merkkijonon. |
flags |
Valinnainen. Määrittää, miten lainausmerkit, virheellinen koodaus ja dokumenttipudos käsitellään, sekä käytettävä dokumenttipudos. Käytettävissä olevat lainausmerkit:
Virheellinen koodaus:
Määritellään käytettävän dokumentityypin lisäflags:in
|
character-set |
Valinnainen. Merkkijono, joka määrittää käytettävän merkistön. Sallitut arvot:
Huomautus:PHP 5.4:n edellisissä versioissa tunnistamattomat merkkikannat jätetään huomiotta ja korvataan ISO-8859-1:llä. PHP 5.4:stä lähtien tunnistamattomat merkkikannat jätetään huomiotta ja korvataan UTF-8:lla. |
double_encode |
Valinnainen.布尔值,määrittää, koodataanko olemassa olevat HTML-entiteetit.
|
Tekninen yksityiskohta
Palautusarvo: |
Palauttaa muunnetun merkkijonon. Jos string Jos sisältää virheellistä koodausmuotoa, palautetaan tyhjä merkkijono, ellei asetettu ENT_IGNORE tai ENT_SUBSTITUTE -merkkiä. |
PHP-versio: | 4+ |
Päivitysloki: |
PHP 5:ssächaracter-set Parametarin oletusarvo muutettiin UTF-8:ksi. PHP 5.4:ssä lisättiin: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 ja ENT_XHTML. PHP 5.3:ssä lisättiin ENT_IGNORE. PHP 5.2.3:ssä lisättiin double_encode 参数。 在 PHP 4.1 中,新增了 character-set 参数。 |
更多实例
例子 1
把一些预定义的字符转换为 HTML 实体:
<?php $str = "Bill & 'Steve'"; echo htmlspecialchars($str, ENT_COMPAT); // 只转换双引号 echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES);// 转换双引号和单引号 echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); // 不转换任何引号 ?>
以上代码的 HTML 输出如下(查看源代码):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>
以上代码的浏览器输出:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
例子 2
把双引号转换为 HTML 实体:
<?php $str = 'I love "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); // 转换双引号和单引号 ?>
以上代码的 HTML 输出如下(查看源代码):
<!DOCTYPE html> <html> <body> I love "PHP" </body> </html>
以上代码的浏览器输出:
I love "PHP".