Home  >  Article  >  Backend Development  >  How to change Chinese punctuation to English punctuation in PHP

How to change Chinese punctuation to English punctuation in PHP

藏色散人
藏色散人Original
2021-07-05 11:45:072679browse

php method to change Chinese punctuation to English punctuation: 1. Replace through the "str_replace()" function; 2. Through "for (int i = 0; i < c.Length; i ){. ..}" method to replace.

How to change Chinese punctuation to English punctuation in PHP

The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer

php replaces all Chinese symbols with English symbols

  • Simple replacement str_replace()

  • Regular replacements have a difference of 65248

Method 1: Simple replacement ( php code)

$val1=str_replace(&#39;,&#39;,&#39;,&#39;,$val1);
$val1=str_replace(&#39;(&#39;,&#39;(&#39;,$val1);
$val1=str_replace(&#39;)&#39;,&#39;)&#39;,$val1);

Method 2: Replace all characters (regular replacement)

for (int i = 0; i < c.Length; i++)
{
if (c[i]==12288)
{
c[i]= (char)32; continue;
}
if (c[i]>65280 && c[i]<65375)
c[i]=(char)(c[i]-65248);
}

1. The corresponding relationship between half-width symbols and full-width symbols is How was it?

The average difference is 65248

///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///

2. Replace Chinese punctuation marks with English punctuation marks

Simple replacement (php code)

$val1=str_replace(&#39;,&#39;,&#39;,&#39;,$val1);
$val1=str_replace(&#39;(&#39;,&#39;(&#39;,$val1);
$val1=str_replace(&#39;)&#39;,&#39;)&#39;,$val1);

/// 转全角的函数(SBC case) ///
///任意字符串
/// 全角字符串 ///
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///
  
public string ToSBC(string input)
{ //半角转全角:
    char[] c=input.ToCharArray();
      for (int i = 0; i < c.Length; i++)
    {
       if (c[i]==32)
    {
    c[i]=(char)12288; continue;
  }
   if (c[i]<127) c[i]=(char)(c[i]+65248);
   }
return new string(c);
}
  
/// /// 转半角的函数(DBC case) ///
///任意字符串
/// 半角字符串 ///
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///
public string ToDBC(string input)
{
char[] c=input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i]==12288)
{
c[i]= (char)32; continue;
}
if (c[i]>65280 && c[i]<65375)
c[i]=(char)(c[i]-65248);
}
return new string(c);
}

Recommended study: "PHP Video Tutorial"

The above is the detailed content of How to change Chinese punctuation to English punctuation in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn