"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Qué tamaño puede tener una cadena en PHP?

¿Qué tamaño puede tener una cadena en PHP?

Publicado el 2024-11-09
Navegar:378

How Large Can a String Be in PHP?

¿Cuál es el límite superior de longitud de cadena en PHP?

Consulta:
¿Puedes arrojar luz sobre ¿Los límites de la capacidad de almacenamiento de cadenas en PHP? Intenté medirlo pero no estoy seguro de si la memoria de mi sistema (2 GB) es adecuada para la prueba. ¿Existe un límite predefinido? ¿Qué acciones ocurren cuando una cadena excede este umbral: concatenación o error?

Respuesta:
Según la documentación de PHP.net, las restricciones de longitud de cadena se han eliminado en PHP 7.0.0 para compilaciones de 64 bits. Para compilaciones de 32 bits y versiones anteriores, las cadenas podían alcanzar un tamaño máximo de 2 GB (2147483647 bytes).

En PHP 5.x, las cadenas estaban restringidas a 231-1 bytes porque El código interno registró su longitud en un entero de 32 bits con signo.

Adicional Consideraciones:
Puedes cargar el contenido de un archivo completo usando funciones como file_get_contents(). Sin embargo, la asignación de memoria general de un script PHP para todas las variables limita la longitud de las variables de cadena individuales.

Directiva de límite de memoria:
La directiva de límite de memoria en el archivo de configuración php.ini establece esto límite. Su valor predeterminado es 128 MB en PHP 5.2 y 8 MB en versiones anteriores.

Si el límite de memoria no está configurado en php.ini, el valor predeterminado es el valor compilado en el binario de PHP, que se puede modificar recompilando PHP con un valor predeterminado personalizado. .

Establecer Memory_limit en -1 en php.ini deshabilita la verificación y permite que su secuencia de comandos utilice tanta memoria como el sistema operativo asigne (aún sujeto a restricciones prácticas y específicas del sistema).

Ejemplo de prueba:
El siguiente código demuestra cómo probar el uso de memoria y los límites de asignación de cadenas:

// 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));
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3