-1

我有字符串

“*A----*B----”。

我想用空格字符('')替换所有连字符('-')字符。我用 str_replace 作为

str_replace('-', ' ', "*A-----*B-----")。

结果应该是

"*A<5 个空格>*B<5 个空格>"

但相反它给了我

“*A*B”

为什么不保留空格字符?我需要在字符串中保留空格字符。

[有趣的是,在发布这个问题时,即使我无法输入带有空格的字符串 :) ]

4

6 回答 6

3

多个空格在所有浏览器中显示为单个空格。

要停止这种行为,您可以在包含元素上使用&nbsp;(Non Breaking SPace) 或white-space: preCSS。

于 2013-05-09T09:52:39.660 回答
3

我猜这是因为您在 HTML 页面中显示您的字符串,该页面忽略了多个空格。如果您想查看它们,请尝试在<pre>标签之间回显:

echo "<pre>" . $yourstring . "</pre>";

或使用&nbsp;

str_replace('-', '&nbsp;', "*A-----*B-----");
于 2013-05-09T09:53:18.200 回答
1

你应该试试

str_replace('–', '&nbsp;', $str);
于 2013-05-09T09:55:58.290 回答
1

尝试使用str_replace('–', '&nbsp;', $str);

于 2013-05-09T10:09:09.397 回答
0

谢谢大家,你们都是对的。实际上,我正在准备一些 EDI 文档,在创建文件之前,我将输出转储到浏览器以检查其有效性。我看到了 html 的源代码,是的,它在需要的地方有 5 个空格。

于 2013-05-09T10:07:06.297 回答
0

HTML 会忽略一个字符后的多个空格,要在 HTML 中添加多个空格,请使用不间断空格字符&nbsp;

这应该-用非破坏空间字符替换并解决问题

str_replace('–', '&nbsp;', $str);
于 2016-10-18T08:00:22.493 回答