IIS6 および CodeIgniter フレームワークで PHP (5.2.13) を使用しており、html_entities_decode を使用してデータベースからの印刷データの問題を処理しています。例えば:
<?php
echo html_entity_decode($somedata,ENT_QUOTES,"UTF-8");
echo "Hello";
?>
$somedata は $data["informativo"][0]->texto であり、texto はいくつかの html (html と xml が混在することもあります) コードです。
問題は、エコー "Hello" が表示されないことです。実際には $somedata はすべてを出力しません。そのエコーの後のすべてのバッファも同様に表示されません。
CodeIgniter の Output クラスでこの問題が発生する可能性はありますか?
実際には、クエリがすべてをもたらしているわけではないことがわかりました。データベースは MSSQL Server 2005 で、フィールド texto は長いテキストです。
クエリのコードは次のとおりです。
<?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 です。
しかし、なぜ $somedata のエコーの後の php の残りの部分が表示されないのでしょうか? その後のコントローラーでは、ロードされたビューがありません。
私はちょうど答えを見つけました。私のデータベースとの接続は ODBC を使用しており、より大きな long バイト サイズを次のように指定する必要があります。
ini_set("odbc.defaultlrl", "100K");