我从Mssql数据库中读取了以下文本:
我想用以下替换函数将"111“替换为新行("<br>"):
str_replace("111", "<br>", $text);
或者是这个
array_replace("111", "<br>", $text);
当我在代码中声明文本时,这两行都可以工作,但是如果我从数据库中读取它,它就不能工作。在阅读完db中的这篇文章之后,我使用utf8_encode。
我认为问题在于数据库表中定义为"text“的数据类型。
发布于 2018-12-18 09:04:09
您可以使用替换()函数。
$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;这将产生以下结果:
Leitwert und Korrosionsschutz des Kühlwassers überprüfen:
- Umrichterkühlkreis < 200µS/cm
- Ofenkühlkreis und IGBT-Anlagen: < 400µS/cm
- Konzentration des Korrosionsschutzes发布于 2018-12-18 09:18:35
编码()是一个名称很差的函数,经常被使用,不知道它的实际用途。如果您使用SQL Server,您不太可能从数据库中获得ISO-8859-1字符串,因为:
NTEXT列类型),另一个是ANSI (如果是TEXT列类型)。"ANSI“只是”服务器运行的计算机中Windows默认代码页“的通用术语,它可以类似于Windows1252,但不是ISO-8859-1。所以这很可能是你问题的根源。
最后但并非最不重要的一点是,替换()是一个传统的函数,它不具有多字节感知能力。不幸的是,它没有多字节等效,但您可以在那里找到替代方案。
https://stackoverflow.com/questions/53829392
复制相似问题