PHP:将连字符替换为空格字符


PHP: replace hypen with space character

我有一个字符串

"*——* B"。

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

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

结果应该是

"*A<5 space>*B<5 space>"

但是它给了我

"*A *B "

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

[有趣的是,当张贴这个问题,甚至我不能键入一个字符串与空格:)]

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

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

或使用&nbsp;:

str_replace('-', '&nbsp;', "*A-----*B-----");

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

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

你应该试试

str_replace('–', '&nbsp;', $str);

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

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

HTML忽略字符后面的多个空格,要在HTML中添加多个空格,请使用非分隔符&nbsp;

这应该将-替换为非换行空格字符并解决

问题
str_replace('–', '&nbsp;', $str);