Home Backend Development PHP Problem What to do if php string intercepts garbled characters

What to do if php string intercepts garbled characters

Oct 09, 2020 pm 04:14 PM
php

Solutions to intercept garbled characters in php strings: 1. Use [mb_substr()] of the mbstring extension library to intercept; 2. Intercept [UTF-8] encoded strings, the code is [$str = trim( $str);].

What to do if php string intercepts garbled characters

Solution to intercept garbled characters in php string:

1. Use mb_substr of mbstring extension library () interception will not cause garbled characters.

You can use the function mb_substr()/mb_strcut(). The usage of mb_substr()/mb_strcut() is similar to substr(), except that one more parameter needs to be added at the end of mb_substr()/mb_strcut. To set the encoding of the string,

But most servers do not open php_mbstring.dll. You need to open php_mbstring.dll in php.ini.

1

echo mb_substr("php中文字符encode",0,4,"utf-8");

Copy after login

If the last encoding parameter is not specified, three bytes will be used as one Chinese character. This is the characteristic of utf-8 encoding. If the utf-8 character set description is added, it will be one character. Intercepted for the unit.

When using, pay attention to the encoding of the php file and the encoding when the web page is displayed. To use this mb_substr method, you need to know the encoding of the string in advance. If you don't know the encoding, you need to judge. The mbstring library also provides mb_check_encoding to check the string encoding, but it is not perfect yet.

PHP comes with several string interception functions, among which substr and mb_substr are commonly used. When the former processes Chinese, GBK is 2 length units and UTF is 3 length units. After the latter specifies encoding, one Chinese character is 1 length unit.

substr sometimes cuts off 1/3 of Chinese or half of Chinese and displays garbled characters. Relatively speaking, mb_substr is more suitable for us to use. But sometimes mb_substr is not so easy to use. For example, if I want to display the brief information of a small picture, 5 Chinese characters are just right. If there are more than 5 characters, just intercept the first 4 and add "...". This is no problem when processing Chinese, but when processing English or numbers, this interception will be too short. .

2. Write the interception function yourself, but the efficiency is not as high as using the mbstring extension library. The following is a function in ecshop that intercepts strings encoded in UTF-8.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

function sub_str($str, $length = , $append = true)

{

  $str = trim($str);

  $strlength = strlen($str);

  if ($length == || $length >= $strlength)

  {

    return $str; //截取长度等于或大于等于本字符串的长度,返回字符串本身

  }

  elseif ($length < ) //如果截取长度为负数

  {

    $length = $strlength + $length;//那么截取长度就等于字符串长度减去截取长度

    if ($length < )

    {

      $length = $strlength;//如果截取长度的绝对值大于字符串本身长度,则截取长度取字符串本身的长度

    }

  }

  if (function_exists(&#39;mb_substr&#39;))

  {

    $newstr = mb_substr($str, , $length, EC_CHARSET);

  }

  elseif (function_exists(&#39;iconv_substr&#39;))

  {

    $newstr = iconv_substr($str, , $length, EC_CHARSET);

  }

  else

  {

    //$newstr = trim_right(substr($str, , $length));

    $newstr = substr($str, , $length);

  }

  if ($append && $str != $newstr)

  {

    $newstr .= &#39;...&#39;;

  }

  return $newstr;

}

Copy after login

If you want to know more about programming learning, please pay attention to the php training column!

The above is the detailed content of What to do if php string intercepts garbled characters. For more information, please follow other related articles on the PHP Chinese website!

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)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

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 do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles