Home Backend Development PHP Tutorial PHP can easily intercept mixed Chinese and English strings with just 2 lines of code!

PHP can easily intercept mixed Chinese and English strings with just 2 lines of code!

Jul 25, 2016 am 09:12 AM

When it comes to Chinese and English mixed counting and interception, the first thing that comes to mind is ascii, hexadecimal, regular matching, and loop counting.

Today I will share with you the mb extension of php to teach you how to process strings easily.


First introduce to you the functions used:

mb_strwidth($str, $encoding) returns the width of the string

$str The string to be calculated

$encoding The encoding to be used, such as utf8, gbk

mb_strimwidth($str, $start, $width, $tail, $encoding) intercepts the string by width

$str The string to be intercepted

$start The position from which to start interception, the default is 0

$width The width to be intercepted

$tail is appended to the string after the intercepted string, commonly used is...

$encoding The encoding to use


I will give you an example below:

  1. /**
  2. * utf8 encoding format
  3. * 1 Chinese character occupies 3 bytes
  4. * What we hope is that 1 Chinese character occupies 2 bytes,
  5. * Because from the width point of view, the position occupied by 2 English letters is equivalent to 1 Chinese character
  6. */
  7. // Test string
  8. $str = 'aaaaahahaaaaahahahaaa';
  9. echo strlen($str); // only Use strlen to output 25 bytes
  10. // You must specify the encoding, otherwise PHP's internal code mb_internal_encoding() will be used to view the internal code
  11. // Use mb_strwidth to output a string with a width of 20 and use utf8 encoding
  12. echo mb_strwidth($ str, 'utf8');
  13. // Only intercept if the width is greater than 10
  14. if(mb_strwidth($str, 'utf8')>10){
  15. // Set here to intercept from 0, take 10 appends ..., use utf8 encoding
  16. // Note that the appended... will also be calculated into the length
  17. $str = mb_strimwidth($str, 0, 10, '...', 'utf8');
  18. }
  19. // Finally output aaaa... 4 a's are counted as 4 1's, 2 are counted as 3 points, and 3 are counted as 4+2+3=9
  20. // Isn't it very simple? Some people have said Why is it 9 and not 10?
  21. // Because "Ah" happens to be followed by "Ah", Chinese counts 2, 9+2=11 exceeds the setting, so removing 1 is 9
  22. echo $str;
Copy code


Let me introduce some other functions to you below:

mb_strlen($str, $encoding) returns the length of the string

$str The string to be calculated

$encoding The encoding used

mb_substr($str, $start, $length, $encoding) intercepts the string

$str The string to be intercepted

$start Where to start intercepting

$length How long to intercept

$encoding The encoding used

In fact, these two functions are very similar to strlen() and substr(). The only difference is that the encoding can be set.


Example below:

  1. /**
  2. * utf8 encoding format
  3. * 1 Chinese occupies 3 bytes
  4. */
  5. $str = 'aa12ahaa';
  6. echo strlen($str); // Direct output length is 9
  7. // Output length is 7 , why is it 7?
  8. // Note that after setting the encoding here, whether it is Chinese or English, the length of each is 1
  9. // a a 1 2 ah a a
  10. // 1+1+1+1+1+1+1 = 7
  11. // Is it exactly 7 characters?
  12. echo mb_strlen($str, 'utf8');
  13. // The same is true for mb_substr
  14. // I only want 5 characters now
  15. echo mb_substr($str, 0, 5, 'utf8'); // Output aa12
Copy code


In fact, there are many useful functions in the mb extension, so I won’t list them all here.

Interested friends can check the official manual

http://www.php.net/manual/zh/ref.mbstring.php

Okay, that’s all for today.



Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

How does session hijacking work and how can you mitigate it in PHP? How does session hijacking work and how can you mitigate it in PHP? Apr 06, 2025 am 12:02 AM

Session hijacking can be achieved through the following steps: 1. Obtain the session ID, 2. Use the session ID, 3. Keep the session active. The methods to prevent session hijacking in PHP include: 1. Use the session_regenerate_id() function to regenerate the session ID, 2. Store session data through the database, 3. Ensure that all session data is transmitted through HTTPS.

What are Enumerations (Enums) in PHP 8.1? What are Enumerations (Enums) in PHP 8.1? Apr 03, 2025 am 12:05 AM

The enumeration function in PHP8.1 enhances the clarity and type safety of the code by defining named constants. 1) Enumerations can be integers, strings or objects, improving code readability and type safety. 2) Enumeration is based on class and supports object-oriented features such as traversal and reflection. 3) Enumeration can be used for comparison and assignment to ensure type safety. 4) Enumeration supports adding methods to implement complex logic. 5) Strict type checking and error handling can avoid common errors. 6) Enumeration reduces magic value and improves maintainability, but pay attention to performance optimization.

Describe the SOLID principles and how they apply to PHP development. Describe the SOLID principles and how they apply to PHP development. Apr 03, 2025 am 12:04 AM

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to debug CLI mode in PHPStorm? How to debug CLI mode in PHPStorm? Apr 01, 2025 pm 02:57 PM

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

How to automatically set permissions of unixsocket after system restart? How to automatically set permissions of unixsocket after system restart? Mar 31, 2025 pm 11:54 PM

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

How to send a POST request containing JSON data using PHP's cURL library? How to send a POST request containing JSON data using PHP's cURL library? Apr 01, 2025 pm 03:12 PM

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

See all articles