在PHP页面中显示长ntext字段已附加截断或奇怪的文本

时间:2016-06-03 11:24:31

标签: php sql-server

我在尝试在PHP网页中显示ntext MS SQL Server字段时遇到问题。

数据库中的字段存储带有所有标记的HTML格式文档。

数据库MS SQL 2012,其排序规则设置为Latin1_General_CI_AS,字段类型为ntext

HTML页面的编码元标记设置为UTF8

<meta charset="UTF-8">

PHP有以下内容尝试去除标记。

$note2 = odbc_result($result, data2);
$note2 = mb_convert_encoding($note2, 'UTF-8', 'Latin1_General_CI_AS');
$note2 = strip_tags($note2, "<br><p>");
echo trim($note2);

我得到了奇怪且不一致的结果 例如,实际文本的后半部分被其他一些文本替换,这些文本可能包含SQL代码或类似的警告消息。

  有趣的是,依靠系统的时区是不安全的   设置。 Plep! “T”«T。时区设置,TÙìèÕìment变量   oe date_d fault_timezone_set()函数。在càYìÙìù0天,1   小时,16分钟得到这个可能错误拼写了   时区标识符。我们选择'欧洲/伦敦'作为'1.0 / DST'   而不是T'«TÉ0±±ÜìL{ÈNì~üa'ÐÜìCâÉ

我已经尝试CAST(myntextfield AS TEXT) AS mytextfield但是这改变了我的返回文本,因此它只返回了消息的后半部分,所以这不好。

问题发生在文本中的4000个字符,我不知道是否有意义。我在php.ini文件中将两个值mssql.textlimitmssql.textsize设置为65000。

1 个答案:

答案 0 :(得分:0)

我现在找到了答案,我需要在php.ini文件中设置odbc.defaultlrl值,我的数据库连接是ODBC连接。