2012-06-21 4 views
3

PHP로 데이터베이스에 매우 긴 문자열을 저장하고 싶습니다. 문자열의 크기는 43kb입니다. 하지만이 문자열을 PHP 변수에 전달하면 지원하지 않습니다. 그것은 한 문자열에 16379 개의 charcters를 지원합니다. 한 문자를 더 추가 할 때 Dreamweaver에서는 해당 행에 구문 오류가 있음을 나타냅니다. PHP 변수에 50,000 자의 긴 문자열을 어떻게 저장할 수 있습니까?PHP 매우 긴 문자열 지원

+0

다음 두 줄로 나눕니다. '$ str = '...'; $ str. = '...';'- 이것은 당신에게도 흥미로울 것입니다 : http://stackoverflow.com/questions/3189040/what-is-the-maximum-length-of-a-string-in-php – Niko

답변

8

처리 할 메모리가 충분하면 PHP 문자열 변수에 저장할 수 있습니다.

43kb는 16379 자까지 많지 않습니다.

Dreamweaver (나는 좋을 것입니다.), 그냥 자신의 메모리 제한이 있어야하거나 그러한 변수를 처리하는 데 사용되지 않아야합니다.

PHP 스크립트를 실행하지 않으셨습니까?

그런데 변수에 저장할 큰 데이터가 있다면 PHP 스크립트에서 파일로 이동하는 것이 좋습니다.

기본적으로 PHP는 memory_limit이 128MB이지만 사용자는 그것을 늘리십시오.

+2

실제로 문자열은 PHP에 할당하는 것보다 많은데도 관계없이 2GB의 제한이 있습니다. http://www.php.net/manual/en/language.types.string.php – Erik

+0

좋은 catch @Erik –

2

PHP 문자열에는 실제 제한이 없습니다. 여기 Bill Karwin의 반응을 붙여 넣을 수 있습니다, 당신적이고 들어 What is the maximum length of a String in PHP?

: 여기

는 질문의 중복 가능성의

그러나, PHP 스크립트는 전체 메모리 그것에 제한이 주어진 스크립트 실행에서 모든 변수에 대해 을 할당 할 수 있으므로이 사실 은 단일 문자열 변수의 길이에도 제한을 설정합니다.

이 제한은 php.ini 구성 파일의 memory_limit 지정 문입니다. 메모리 제한 기본값은 PHP 5.2에서는 128MB이고 이전 릴리스에서는 에서 8MB입니다.

php.ini 파일에 메모리 제한을 지정하지 않으면 기본값 인 이 사용되며 PHP 바이너리로 컴파일됩니다. 이론상으로 소스를 수정하고 PHP를 다시 작성하여이 기본값을 변경할 수 있습니다. 당신이 당신의 php.ini 파일의 메모리 한계로 -1을 지정하면

, 그것은 검사를 중지하고 할당됩니다 운영 체제로 많은 메모리를 사용하는 스크립트를 허용합니다. 이것은 여전히 ​​실용적인 한계이지만, 은 시스템 자원 및 아키텍처에 따라 다릅니다.