Maison > développement back-end > tutoriel php > Quelle peut être la taille d'une chaîne en PHP ?

Quelle peut être la taille d'une chaîne en PHP ?

Barbara Streisand
Libérer: 2024-11-02 21:45:02
original
197 Les gens l'ont consulté

How Large Can a String Be in PHP?

Quelle est la limite supérieure de la longueur des chaînes en PHP ?

Requête :
Pouvez-vous nous éclairer sur les limites de la capacité de stockage de chaînes en PHP ? J'ai essayé de l'évaluer, mais je ne sais pas si la mémoire de mon système (2 Go) est adéquate pour le test. Y a-t-il un plafond prédéfini ? Quelles actions se produisent lorsqu'une chaîne dépasse ce seuil – concaténation ou erreur ?

Réponse :
Selon la documentation de PHP.net, les restrictions de longueur de chaîne ont été éliminées dans PHP 7.0.0 pour les versions 64 bits. Pour les versions 32 bits et les versions antérieures, les chaînes pouvaient atteindre une taille maximale de 2 Go (2147483647 octets).

Dans PHP 5.x, les chaînes étaient limitées à 231-1 octets car le code interne a suivi leur longueur dans un format signé 32 bits entier.

Considérations supplémentaires :
Vous pouvez charger le contenu entier d'un fichier à l'aide de fonctions telles que file_get_contents(). Cependant, l'allocation globale de mémoire d'un script PHP pour toutes les variables limite la longueur des variables de chaîne individuelles.

Directive de limite de mémoire :
La directive memory_limit dans le fichier de configuration php.ini définit ceci limite. Sa valeur par défaut est de 128 Mo dans PHP 5.2 et de 8 Mo dans les versions antérieures.

Si memory_limit n'est pas défini dans php.ini, la valeur par défaut est la valeur compilée dans le binaire PHP, qui peut être modifiée en recompilant PHP avec une valeur par défaut personnalisée. .

Définir memory_limit sur -1 dans php.ini désactive la vérification et permet à votre script d'utiliser autant de mémoire que le système d'exploitation alloue (toujours soumis à des contraintes pratiques et spécifiques au système).

Exemple de test :
Le code suivant montre comment tester l'utilisation de la mémoire et les limites d'allocation de chaînes :

<code class="php">// Limit memory usage to 1MB
ini_set('memory_limit', 1024*1024);

// Basic operation uses about 768KB
printf("memory: %d\n",  memory_get_usage(true));

$str = str_repeat('a',  255*1024);
echo "Allocated string of 255KB\n";

// All 1MB of memory has been allocated
printf("memory: %d\n",  memory_get_usage(true));

// Exceeding the limit causes a fatal error
$str = str_repeat('a',  256*1024);
echo "Allocated string of 256KB\n";
printf("memory: %d\n",  memory_get_usage(true));</code>
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal