PHP의 문자열 길이에 대한 실제 제한은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-03 02:59:03
원래의
371명이 탐색했습니다.

What are the practical limitations on string length in PHP?

PHP의 문자열 최대 길이

PHP의 문자열에는 PHP 7.0.0에 따라 64비트 빌드에서 길이에 대한 특정 제한이 없습니다. 그러나 32비트 빌드 및 이전 버전에서는 2GB(2147483647바이트)로 제한됩니다.

PHP 5.x에서는 사용으로 인해 문자열이 231-1바이트로 제한되었습니다. 길이를 기록하기 위해 부호 있는 32비트 정수를 사용합니다.

메모리 제한

PHP 스크립트는 변수에 할당할 수 있는 총 메모리에 제한이 있어 효과적으로 길이에 제한을 둡니다. 단일 문자열 변수. 이 제한은 php.ini의 memory_limit 지시어에 의해 설정됩니다. PHP 5.2에서는 기본값이 128MB이고 이전 버전에서는 8MB입니다.

메모리 제한을 지정하지 않으면 컴파일 중에 설정된 값이 기본값으로 사용됩니다. php.ini에 -1 값을 할당하면 메모리 검사가 비활성화되어 스크립트가 운영 체제가 제공하는 만큼의 메모리를 사용할 수 있습니다.

실제 제한

메모리 제한 지시문은 실제 제한을 부과합니다. 이론적인 한계에 관계없이 문자열 길이에 따라 달라집니다. 또한 file_get_contents()와 같은 함수를 사용하여 내용을 후루룩 소리낼 때 파일 크기가 요인이 될 수 있습니다.

간단한 데모:

<code class="php">ini_set('memory_limit', 1024*1024);
printf("memory: %d\n", memory_get_usage(true));

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

printf("memory: %d\n", memory_get_usage(true));

$str = str_repeat('a', 256*1024);
echo "Allocated string of 256KB\n";
printf("memory: %d\n", memory_get_usage(true));</code>
로그인 후 복사

여기, 1MB의 메모리 제한이 설정되었습니다. 스트링 메모리 255KB 할당은 제한을 초과하지 않지만, 256KB 할당을 시도하면 제한 도달로 인해 치명적인 오류가 발생합니다.

위 내용은 PHP의 문자열 길이에 대한 실제 제한은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿