Home > Article > Backend Development > How to use PHP's trim() function to remove Chinese spaces
When developing PHP programs, we often need to process strings. In string processing, it is often necessary to remove Chinese spaces. So, how to remove Chinese spaces using PHP? In this article, we will introduce how to remove Chinese spaces using PHP’s trim() function.
1. What are Chinese spaces?
Chinese spaces appear differently in different input methods, but they are basically the same. They are all placeholders or half-width symbols that can be entered using the space bar on the keyboard. Chinese space is a string from the perspective of programming languages, but it is different from ordinary spaces. It occupies one byte like a character, but its ASCII code is different from ordinary spaces.
2. How to remove Chinese spaces at both ends of a string using PHP
There are usually two ways to use PHP’s built-in functions to remove Chinese spaces at both ends of a string. Method:
Method 1: Use the trim() function
PHP language provides the trim() function, which can remove whitespace characters at both ends of the string, including spaces. , tab character, newline character, etc. However, by default, this function can only remove space characters within the ASCII code value range, and cannot do anything about Chinese spaces.
When solving the problem of Chinese spaces, we can extend the function of trim() function. You can use regular expressions to match Chinese spaces and remove them through the trim() function. The specific code is as follows:
function chn_trim($str){ return preg_replace('/^[\p{Zs}\p{Zp}]+|[\p{Zs}\p{Zp}]+$/u', '', $str); }
In the above code, we use the character classes \p{Zs} and \p{Zp}, which are used to match spaces and paragraph delimiters in Unicode respectively, plus modifications Chinese spaces can be correctly recognized after the /u character.
This method can effectively solve the problem of Chinese spaces, but its disadvantage is that the chn_trim() function needs to be called for each string to be removed from Chinese spaces, and the function needs to be repackaged, which is not concise enough.
Method 2: Use PHP’s global function
In order to make the code more standardized and concise, we can add a function to PHP’s global function for global removal Chinese spaces at both ends of the string. The specific code is as follows:
if(!function_exists('trim_cn')){ function trim_cn($string){ $string = preg_replace('/^[\p{Zs}\p{Zp}]+|[\p{Zs}\p{Zp}]+$/u', '', $string); return trim($string); } }
In the above code, we first use the same regular expression as method 1, and use the preg_replace() function to remove the Chinese spaces at both ends of the string. Since we need to use this function as a global function, we use if(!function_exists('trim_cn')) conditional judgment to determine whether the function already exists. If it does not exist, define the function, otherwise no processing will be done.
This method has certain universality. It is no longer necessary to call the custom function chn_trim() for each string that needs to remove Chinese spaces. By defining this function globally, the amount of code can be reduced and the readability and maintainability of the code can be improved.
3. Summary
This article introduces two methods for removing Chinese spaces. The first method is to extend PHP's built-in trim() function and use regular expressions to remove Chinese spaces at both ends of the string. The second method is to add the trim_cn() function to the global function, define the global function by judging whether the function exists, and remove Chinese spaces at both ends of the string.
Of course, in actual programming, other methods can be used to remove Chinese spaces. When processing strings, you need to follow the principle of concise and easy-to-read code, and do not use overly complex code to ensure the maintainability of the code.
The above is the detailed content of How to use PHP's trim() function to remove Chinese spaces. For more information, please follow other related articles on the PHP Chinese website!