에서 젠드 텍스트 영역에 큰 텍스트를로드하는 textarea
는 데이터베이스 레코드에서이내가 채우기 위해 노력하고 데이터베이스
$this->addElement('textarea', 'body', array(
'label' => $translate->translate('Contents:'),
'cols' => '80',
'rows' => '24',
'required' => true
));
같이 정의. 이 레코드는 UTF-8로 페이지의 HTML 텍스트를 포함하는 BLOB입니다.
$form->populate(array(
// ...
'body' =>
str_replace("\\n", "\n",
html_entity_decode(
$page['body']
)
),
// ...
));
불행히도 텍스트의 길이가 2934 바이트보다 큰 경우 필드는 전혀 채워지지 않습니다.
'maxlength' => '4096',
을 설정하여 maxlength
을 설정하려고했지만 아무런 효과가없는 것으로 보입니다.
이제 웹에서 찾을 수있는 것부터 textarea
한계는 2934 바이트보다 커야하며 30-60KB에 가깝습니다. 필드를 두 개의 개별 폼 요소로 분리하는 것 외에는이 문제를 어떻게 해결할 수 있습니까?
업데이트 범인 문자 "ß는"였습니다 두 개의 문자, "A"로 데이터베이스에서 인코딩 된 것 같다. 그 문자의 첫 번째 발생은 텍스트 내의 2934 위치에 있으므로 2 바이트 표현의 두 번째 문자는 어떻게 든 필드를 완전히 수신하지 못하게합니다.
문제가 데이터베이스에서 blob을 제거하지 못하고 있습니까? 문제가 그럴 것 같고 많은 데이터를 가져 오기 위해 양식 요소를 가져 오는 것이 아닙니다. – ficuscr
아니요, 나는 텍스트가 데이터베이스에서 검색되고 있다는 긍정적 인 이유는 다음과 같은 두 가지 이유 때문입니다. 1) 성공을 통해 명백하게 'echo'시도했습니다. 2) substr ($ page [ 'body'], 1 , 2934)'대신 양식 요소가 제대로 채워집니다. 'substr ($ page [ 'body'], 1, 2935)'이미 그것이 아닙니다. – Vilinkameni
텍스트 영역에 HTML 침투 ... 페이지 소스를 보면 거기에 모든 것이 있습니까? WYSIWYG 편집기를 사용하거나'htmlentitites()'를 통해 실행해야 할 수도 있습니다. 참조 : http://stackoverflow.com/questions/3777297/php-html-form-textarea-containing-html – ficuscr