Home >Backend Development >PHP Problem >How to remove Chinese spaces in php
How to remove Chinese spaces in php: 1. Use the regular expression "preg_replace('/^[(\xc2\xa0)|\s] /', '', $new['content']);" Remove Chinese spaces; 2. Remove Chinese spaces through regular replacement in mb.
The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer
How to remove Chinese spaces in php?
PHP regular code to remove Chinese spaces
There are several types of Chinese spaces: there is no simple way to solve the problem, such as half-width and full-width spaces, For example, paragraph breaks will be displayed as blank, which will make people misunderstand that they are spaces. Therefore, before removing the spaces, you must first confirm whether yours is a space. I will analyze these two solutions below.
(1)/[\s| ] /This will do. Note that | is followed by a full-width space
(2) You can also try regular replacement in mb
Also note that when using Unicode, add the regular expression descriptor u
. However, since there are many spaces that appear as spaces in Chinese, for example, the one I encountered below, its unicode The encoding is C2A0, and the problem can be solved using the following expression.
$new['content'] = preg_replace('/^[(\xc2\xa0)|\s]+/', '', $new['content']);
Here is a detail: \xc2a0 is originally a Unicode character, but it cannot match more than one and can only replace one. [This may be due to byte reasons] Later, I suddenly found such a writing method and solved it. This solved the problem. In addition, in order to avoid the confusion of Chinese spaces and English spaces, I added a \s later to clear it.
In fact, regular expressions on Unicode are not very easy to use.
Other references:
Everyday when we process data, we often generate extra spaces. If you want to compare strings, it will cause problems; it also wastes extra storage space.
How to remove spaces? Perhaps you will first think of the PHP built-in function trim(). Yes, it is indeed effective in processing the beginning and end of characters, but in this case it cannot do it: turn multiple spaces into one space, turn spaces into an ordered and regular queue, etc...
So, regular expressions come in handy. Take a look at the following code:
$str = ” This line contains\tliberal \r\n use of whitespace.\n\n”; // 首先去掉头尾空格 $str = trim($str); // 接着去掉两个空格以上的 $str = preg_replace(’/\s(?=\s)/’, '', $str); // 最后将非空格替换为一个空格 $str = preg_replace(’/[\n\r\t]/’, ' ', $str);
Use the above example to remove all extra spaces. First use TRim() to remove leading and trailing spaces, and then use preg_replace() to remove repeated spaces. The (?=) in
means that only the following spaces and the preceding spaces will be matched.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to remove Chinese spaces in php. For more information, please follow other related articles on the PHP Chinese website!