我有字符串
“* A ---- * B ----”。
我想用空格字符('')替换所有的hypen(' - ')字符。我使用str_replace作为
str_replace(' - ','',“* A ----- * B -----”)。
结果应为
“* A< 5 space> * B< 5 space>”
但它给了我
“* A * B”
为什么不保留空格字符?我需要在字符串中保留空格字符。
[有趣的是,在发布这个问题时,即使我不能输入空格:)]
答案 0 :(得分:3)
在所有浏览器中,多个空格显示为单个空格。
要停止此行为,您可以在包含元素上使用
(非破坏间距)或white-space: pre
CSS。
答案 1 :(得分:3)
我想这是因为你在HTML页面中显示你的字符串,忽略了多个空格。如果您想查看它们,请尝试在<pre>
标记之间回显:
echo "<pre>" . $yourstring . "</pre>";
或使用
:
str_replace('-', ' ', "*A-----*B-----");
答案 2 :(得分:1)
你应该试试
str_replace('–', ' ', $str);
答案 3 :(得分:1)
尝试使用str_replace('–', ' ', $str);
答案 4 :(得分:0)
谢谢大家,你们都是对的。实际上我正在准备一些EDI文档,在创建文件之前我将输出转储到浏览器以检查其有效性。我看到了html的来源,是的,它需要5个空格。
答案 5 :(得分:0)
HTML忽略一个字符后面的多个空格,在HTML中添加多个空格使用一个非空格字符
这应该用非破坏空格字符替换-
并解决问题
str_replace('–', ' ', $str);