2013-09-20 5 views
0

Я использую PHP (5.2.13) с инфраструктурой IIS6 и CodeIgniter, и я обрабатываю проблемы с данными печати из базы данных с помощью html_entities_decode. Например:html_entities_decode cuts codeignign output

<?php 

echo html_entity_decode($somedata,ENT_QUOTES,"UTF-8"); 
echo "Hello"; 

?> 

$ somedata составляет $ данных [ "Informativo"] [0] -> Texto и Texto некоторые HTML (HTML смешать с XML иногда) кодов.

Проблема в том, что эхо «Hello» не отображается, на самом деле $ somedata не печатает все. Весь буфер после этого эха также не отображается.

Может быть, эта проблема с классом Output из CodeIgniter?


Я обнаружил, что на самом деле запрос не приносит все. База данных - MSSQL Server 2005, а текстовое поле - длинный текст.

Код запроса является:

<?php 
    public function getInformativo($idInformativo) 
    { 
     $sql = "SELECT titulo,texto,secao,usu_atualizacao,data_atualizacao,inativo 
       FROM PI_Informativo 
       WHERE idInformativo = '".$idInformativo."'"; 
     return $this->db->query($sql)->result();  
    } 
?> 

Поле Texto приносит только часть этого длинного текста. Драйвер sql - ODBC.

Но почему остальная часть php после эха $ somedata не отображается? В контроллере после этого отсутствует загруженное представление.


Я просто нашел ответ. Моя связь с базой данных использует ODBC, и мне нужно, чтобы указать больший размер длинных байт с:

ini_set("odbc.defaultlrl", "100K"); 
+0

Вы вызываете 'html_entity_decode()' внутри представления? – Kyslik

+0

Я попробовал как на контроллере, так и на просмотр, и получил те же результаты. – caju

+0

Я знаю, что делает 'html_entity_decode()', но, пожалуйста, отредактируйте вопрос и предоставьте '$ somedata', что в нем? – Kyslik

ответ

0

Пожалуйста, попробуйте использовать помощник для этого, больше информации можно найти here

//example from the site 

$string="Joe's \"dinner\""; 
$string=quotes_to_entities($string); //results in "Joe&#39;s &quot;dinner&quot;" 

Я только что нашел это

- * In some versions of PHP the native function does not work 
- * when UTF-8 is the specified character set, so this gives us 
- * a work-around. More info here: 
- * http://bugs.php.net/bug.php?id=25670 
- * 
- * NOTE: html_entity_decode() has a bug in some PHP versions when UTF-8 is the 
- * character set, and the PHP developers said they were not back porting the 
- * fix to versions other than PHP 5.x. 

обходной путь в CI следует загрузке библиотеки безопасности и использовать его как это

$this->load->library('security'); 
return $this->security->entity_decode($str, $charset); 
+0

Эта функция печатает html-код на странице. – caju