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