I have tried to replace characters through ASCII and other characters found online before, and found many inexplicable problems. Finally, I switched to the following character replacement method. List all the full-width characters that I can find so far and replace them one by one
Copy the code The code is as follows:
/**
* Convert full-width characters to half-width
*
* @param string $str
* @return string
*/
public function Sbc2Dbc($str)
{
$arr = array(
'0'=>'0' , '1'=>'1', '2'=>'2', '3'=>'3', '4'=>'4','5'=>'5' , '6'=>'6', '7'=>'7', '8'=>'8', '9'=>'9',
'A'=> 'A', 'B'=>'B', 'C'=>'C', 'D'=>'D', 'E'=>'E','F'=> 'F', 'G'=>'G', 'H'=>'H', 'I'=>'I', 'J'=>'J',
'K' =>'K', 'L'=>'L', 'M'=>'M', 'N'=>'N', 'O'=>'O','P' =>'P', 'Q'=>'Q', 'R'=>'R', 'S'=>'S', 'T'=>'T',
'U'=>'U', 'V'=>'V', 'W'=>'W', 'X'=>'X', 'Y'=>'Y', 'Z'=>'Z', 'a'=>'a', 'b'=>'b', 'c'=>'c', 'd'=>'d',
'e'=>'e', 'f'=>'f', 'g'=>'g', 'h'=>'h', 'i'=>' i','j'=>'j', 'k'=>'k', 'l'=>'l', 'm'=>'m', 'n'=>' n',
'o'=>'o', 'p'=>'p', 'q'=>'q', 'r'=>'r', 's'= >'s', 't'=>'t', 'u'=>'u', 'v'=>'v', 'w'=>'w', 'x'= >'x',
'y'=>'y', 'z'=>'z',
'('=>'(', ')'=>') ', '〔'=>'(', '〕'=>')', '['=>'[',']'=>']', '〖'=>'[ ', '〗'=>']', '"'=>'"', '"'=>'"',
'''=>''', '''=> ;''', '{'=>'{', '}'=>'}', '《'=>'<','》'=>'>','%' =>'%', '+'=>'+', '—'=>'-', '-'=>'-',
'~'=>'~', ':'=>':', '. '=>'.', ', '=>',', ', '=>',', ', '=>',', ';'=>';', '? '=>'?', '! '=>'!', '…'=>'-',
'‖'=>'|', '"'=>'"', '''=>''' , '''=>'`', '|'=>'|', '〃'=>'"',' '=>' ', '×'=>'*', '  ̄'=>'~', '. '=>'.', '*'=>'*',
'&'=>'&',''\'=>'\', '/' =>'/'
);
return strtr($str, $arr);
}
http://www.bkjia.com/PHPjc/730060.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/730060.htmlTechArticleI have tried to replace characters such as ASCII on the Internet before, and found many inexplicable problems. Finally, I switched to the following character replacement method, listing all the full-width characters that can be found so far...