Maison développement back-end Problème PHP Comment calculer le nombre d'octets qu'une chaîne occupe en php

Comment calculer le nombre d'octets qu'une chaîne occupe en php

Aug 31, 2022 pm 08:23 PM
php php字符串

En PHP, vous pouvez utiliser la fonction strlen() pour calculer le nombre d'octets dans une chaîne. Cette fonction calcule la longueur d'une chaîne en octets et peut compter la longueur des caractères (nombre d'octets) occupés par la chaîne. La syntaxe est "strlen (string)". Dans le calcul de cette fonction, les virgules anglaises, les chiffres, les lettres anglaises, les points décimaux, etc. n'occupent qu'un octet tandis qu'un caractère chinois codé en GB2312 occupe deux octets et un caractère chinois codé en UTF-8 occupe trois octets.

Comment calculer le nombre d'octets qu'une chaîne occupe en php

L'environnement d'exploitation de ce tutoriel : Système Windows 7, PHP version 8.1, ordinateur DELL G3

Les octets occupés par les caractères dans les différents formats d'encodage en php sont différents :

  • Format d'encodage ANSI Suivant Chinois A le caractère occupe 2 octets et un caractère anglais occupe 1 octet ; au format d'encodage

  • UTF-8, un caractère chinois occupe 3 octets et un caractère anglais occupe 1 octet.

En PHP, vous pouvez utiliser la fonction strlen() pour calculer le nombre d'octets dans une chaîne. La fonction

strlen() calcule la longueur de la chaîne en octets.

strlen($string)
Copier après la connexion

Cette fonction n'accepte qu'un seul paramètre $string (la chaîne à calculer), et renvoie 0 si la valeur passée dans ce paramètre est vide.

fonction strlen(), (en mode anglais) les virgules, les chiffres, les lettres anglaises, les points décimaux ., les traits de soulignement, les espaces, etc. n'occupent qu'une seule longueur de caractère (octet). .、下划线、空格等都只占一个字符长度(字节)。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello world!";
echo &#39;字符串 “&#39;.$str.&#39;” 占:&#39;.strlen($str).&#39; 个字节<br>&#39;;
?>
Copier après la connexion

Comment calculer le nombre doctets quune chaîne occupe en php

分析:上例的字符串中,有10个英文字母,一个空格、一个英文感叹号;合计:12个个字节。

strlen()函数中,一个 GB2312 编码的汉字占两个字符长度(字节),一个 UTF-8 编码的汉字占三个字符长度(字节)。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "!";
echo &#39;字符串 “&#39;.$str.&#39;” 占:&#39;.strlen($str).&#39; 个字节<br>&#39;;
?>
Copier après la connexion

Comment calculer le nombre doctets quune chaîne occupe en php

上例中,"!"是中文感叹号,因此占三个字节。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "欢迎";
echo &#39;字符串 “&#39;.$str.&#39;” 占:&#39;.strlen($str).&#39; 个字节<br>&#39;;
?>
Copier après la connexion

Comment calculer le nombre doctets quune chaîne occupe en php

上例中,包含两个汉字,因此占6个字节。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello,欢迎来到这里!";
echo &#39;字符串 “&#39;.$str.&#39;” 占:&#39;.strlen($str).&#39; 个字节<br>&#39;;
?>
Copier après la connexion

Comment calculer le nombre doctets quune chaîne occupe en php

上例中,包含5个英文字符,6个汉字,一个中文感叹号和一个中文逗号;因此占5+(8*3)=29个字节。

说明:在计算字符串的字符个数时,strlen()函数只能处理英文字符串,对中文或中英混合字符串不友好。此时,就需要利用

mb_strlen()函数了,该函数可以按字符来计算字符串长度的。

扩展知识:mb_strlen() 函数

mb_strlen() 函数同样可以返回字符串的长度,语法格式如下:

mb_strlen($str [, $encoding = mb_internal_encoding()])
Copier après la connexion
  • $str 为需要计算长度的字符串

  • $encoding 是可选参数,为字符编码,如果省略则使用内部字符编码。

mb_strlen() 函数的返回值为具有 $encoding 编码的字符串 $str 所包含的字符数,如果 $encoding 无效则返回 false。

注意:与 strlen() 函数不同,在 mb_strlen() 函数中,无论是汉字,还是英文、数字、小数点、下划线和空格,都只占一个字符长度。

【示例】 使用 mb_strlen() 函数获取字符串长度。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello 你好!";
echo &#39;字符串 “&#39;.$str.&#39;” 的长度为:&#39;.mb_strlen($str,"utf-8").&#39;<br>&#39;;

$str = "欢迎来到PHP中文网!";
echo &#39;<br>字符串 “&#39;.$str.&#39;” 的长度为:&#39;.mb_strlen($str,&#39;utf-8&#39;).&#39;<br>&#39;;
?>
Copier après la connexion

Comment calculer le nombre doctets quune chaîne occupe en php

可以看出,我们可以通过设置对应的$encoding

rrreee

Comment calculer le nombre doctets quune chaîne occupe en php Analyse : dans la chaîne de l'exemple ci-dessus, il y a 10 lettres anglaises, un espace et un point d'exclamation anglais au total : 12 octets.

🎜🎜🎜strlen(), un caractère chinois codé GB2312 occupe deux caractères de longueur (octets) et un caractère chinois codé UTF-8 occupe trois caractères de longueur (octets). 🎜🎜rrreee🎜Comment calculer le nombre doctets quune chaîne occupe en php🎜 🎜Dans l'exemple ci-dessus, "!" est un point d'exclamation chinois, il occupe donc trois octets. 🎜rrreee🎜Comment calculer le nombre doctets quune chaîne occupe en php🎜🎜 Dans l’exemple ci-dessus, il contient deux caractères chinois, il occupe donc 6 octets. 🎜rrreee🎜Comment calculer le nombre doctets quune chaîne occupe en php🎜🎜 Dans l'exemple ci-dessus, il contient 5 caractères anglais, 6 caractères chinois, un point d'exclamation chinois et une virgule chinoise ; il occupe donc 5+(8*3)=29 octets ; 🎜🎜🎜Remarque : 🎜Lors du calcul du nombre de caractères dans une chaîne, la fonction strlen() ne peut traiter que les chaînes anglaises et n'est pas compatible avec les chaînes chinoises ou mixtes chinoises et anglaises. À ce stade, vous devez utiliser la fonction 🎜

mb_strlen(), qui peut calculer la longueur de la chaîne en fonction des caractères. 🎜

🎜Connaissances approfondies : fonction mb_strlen() 🎜🎜🎜La fonction mb_strlen() peut également renvoyer la longueur de la chaîne, le format de syntaxe est le suivant : 🎜rrreee🎜🎜🎜 $str est obligatoire Calculez la longueur de la chaîne 🎜🎜🎜🎜$encoding est un paramètre facultatif, qui est le codage des caractères. S'il est omis, le codage des caractères interne est utilisé. La valeur de retour de la fonction 🎜🎜🎜🎜mb_strlen() est le nombre de caractères contenus dans la chaîne $str avec l'encodage $encoding Si $encoding n'est pas valide, elle renvoie false. 🎜🎜🎜Remarque : contrairement à la fonction strlen(), dans la fonction mb_strlen(), qu'il s'agisse de caractères chinois, d'anglais, de chiffres, de points décimaux, de traits de soulignement et d'espaces, ils n'occupent qu'un seul caractère en longueur. 🎜🎜🎜[Exemple] Utilisez la fonction mb_strlen() pour obtenir la longueur de la chaîne. 🎜rrreee🎜Comment calculer le nombre doctets quune chaîne occupe en php🎜🎜 On peut voir que nous pouvons bien gérer le problème de longueur des chaînes chinoises en définissant les paramètres $encoding correspondants. 🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

CakePHP travaillant avec la base de données CakePHP travaillant avec la base de données Sep 10, 2024 pm 05:25 PM

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles