首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文本中的字符替换为另一个字符,从mssql数据库读取。(php)

将文本中的字符替换为另一个字符,从mssql数据库读取。(php)
EN

Stack Overflow用户
提问于 2018-12-18 08:55:45
回答 2查看 64关注 0票数 1

我从Mssql数据库中读取了以下文本:

  1. Leitwert und Korrosionsschutz des Kühlwassersüberprüfen: 111- Umrichterkühlkreis <200 S/cm 111- Ofenkühlkreis und IGBT-Anlagen:<400 S/cm 111- Konzentration des Korrosionsschutz

我想用以下替换函数将"111“替换为新行("<br>"):

str_replace("111", "<br>", $text);

或者是这个

array_replace("111", "<br>", $text);

当我在代码中声明文本时,这两行都可以工作,但是如果我从数据库中读取它,它就不能工作。在阅读完db中的这篇文章之后,我使用utf8_encode

我认为问题在于数据库表中定义为"text“的数据类型。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-18 09:04:09

您可以使用替换()函数。

代码语言:javascript
复制
$string = 'Leitwert und Korrosionsschutz des Kühlwassers überprüfen: 111- Umrichterkühlkreis < 200µS/cm 111- Ofenkühlkreis und IGBT-Anlagen: < 400µS/cm 111- Konzentration des Korrosionsschutzes';

$string = preg_replace('/111/', '<br>', $string);

echo $string;

这将产生以下结果:

代码语言:javascript
复制
Leitwert und Korrosionsschutz des Kühlwassers überprüfen:
- Umrichterkühlkreis < 200µS/cm
- Ofenkühlkreis und IGBT-Anlagen: < 400µS/cm
- Konzentration des Korrosionsschutzes
票数 1
EN

Stack Overflow用户

发布于 2018-12-18 09:18:35

编码()是一个名称很差的函数,经常被使用,不知道它的实际用途。如果您使用SQL Server,您不太可能从数据库中获得ISO-8859-1字符串,因为:

  1. 微软的RDBM同时使用两个编码,一个是与Unicode兼容的(如果是NTEXT列类型),另一个是ANSI (如果是TEXT列类型)。"ANSI“只是”服务器运行的计算机中Windows默认代码页“的通用术语,它可以类似于Windows1252,但不是ISO-8859-1。
  2. PHP数据库扩展通常将数据库字符串从/转换到应用程序编码,并透明地进行(如果您正确设置连接设置,它们也会正确地完成)。

所以这很可能是你问题的根源。

最后但并非最不重要的一点是,替换()是一个传统的函数,它不具有多字节感知能力。不幸的是,它没有多字节等效,但您可以在那里找到替代方案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53829392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档