[英]convert special characters to html code with php
我需要一個可以清除字符串特殊字符的函數。 我不希望這樣將<br />
類的HTML字符轉換為<br />
我想將以下內容轉換為:•,½,'到html代碼。
這是我當前使用的功能,但似乎不適用於分數。
function cleanText($str){
$str = str_replace("Ñ" ,"Ñ", $str);
$str = str_replace("ñ" ,"ñ", $str);
$str = str_replace("ñ" ,"ñ", $str);
$str = str_replace("Á","Á", $str);
$str = str_replace("á","á", $str);
$str = str_replace("É","É", $str);
$str = str_replace("é","é", $str);
$str = str_replace("ú","ú", $str);
$str = str_replace("ù","ù", $str);
$str = str_replace("Í","Í", $str);
$str = str_replace("í","í", $str);
$str = str_replace("Ó","Ó", $str);
$str = str_replace("ó","ó", $str);
$str = str_replace("“","“", $str);
$str = str_replace("”","”", $str);
$str = str_replace("‘","‘", $str);
$str = str_replace("’","’", $str);
$str = str_replace("—","—", $str);
$str = str_replace("–","–", $str);
$str = str_replace("™","™", $str);
$str = str_replace("ü","ü", $str);
$str = str_replace("Ü","Ü", $str);
$str = str_replace("Ê","Ê", $str);
$str = str_replace("ê","î", $str);
$str = str_replace("Ç","Ç", $str);
$str = str_replace("ç","ç", $str);
$str = str_replace("È","È", $str);
$str = str_replace("è","è", $str);
$str = str_replace("•","•" , $str);
$str = str_replace("¼","¼" , $str);
$str = str_replace("½","½" , $str);
$str = str_replace("¾","¾" , $str);
$str = str_replace("½","½" , $str);
return $str;
}
您可以使用ENT_SUBSTITUTE
屬性將整個函數替換為htmlentities
。 除了可以正常工作外,它的執行速度也快得多。
注意: ENT_SUBSTITUTE
自PHP 5.4 ENT_SUBSTITUTE
可用。
猜猜是時候看看htmlentities
PHP函數及其選項了。
基本上,您可以將整個功能替換為:
$str = htmlentities( $str );
效率也會大大提高。
如果需要特殊處理(尤其是ENT_SUBSTITUTE
),請務必看一下該函數的可選參數。
$str = htmlentities( $str, ENT_SUBSTITUTE );
嘗試一下,我已經使用此函數將任何內容轉換為unicode:
class unicode_replace_entities {
public function UTF8entities($content="") {
$contents = $this->unicode_string_to_array($content);
$swap = "";
$iCount = count($contents);
for ($o=0;$o<$iCount;$o++) {
$contents[$o] = $this->unicode_entity_replace($contents[$o]);
$swap .= $contents[$o];
}
return mb_convert_encoding($swap, "UTF-8"); //not really necessary, but why not.
}
public function unicode_string_to_array( $string ) { //adjwilli
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr( $string, 0, 1, "UTF-8" );
$string = mb_substr( $string, 1, $strlen, "UTF-8" );
$strlen = mb_strlen( $string );
}
return $array;
}
public function unicode_entity_replace($c) { //m. perez
$h = ord($c{0});
if ($h <= 0x7F) {
return $c;
} else if ($h < 0xC2) {
return $c;
}
if ($h <= 0xDF) {
$h = ($h & 0x1F) << 6 | (ord($c{1}) & 0x3F);
$h = "&#" . $h . ";";
return $h;
} else if ($h <= 0xEF) {
$h = ($h & 0x0F) << 12 | (ord($c{1}) & 0x3F) << 6 | (ord($c{2}) & 0x3F);
$h = "&#" . $h . ";";
return $h;
} else if ($h <= 0xF4) {
$h = ($h & 0x0F) << 18 | (ord($c{1}) & 0x3F) << 12 | (ord($c{2}) & 0x3F) << 6 | (ord($c{3}) & 0x3F);
$h = "&#" . $h . ";";
return $h;
}
}
}
$oUnicodeReplace = new unicode_replace_entities();
$oUnicodeReplace->UTF8entities($string);
請注意,它將轉換所有內容,但否則將處理奇怪的字符……不是我自己的腳本,但我也不知道我在哪里找到它。
是: http ://www.php.net/manual/en/function.htmlentities.php或這樣: http : //www.php.net/manual/en/function.htmlspecialchars.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.