PHP:用空格字符替换连字符

时间:2013-05-09 09:50:13

标签: php

我有字符串

  
    

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

  

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

  
    

str_replace(' - ','',“* A ----- * B -----”)。

  

结果应为

  
    

“* A< 5 space> * B< 5 space>”

  

但它给了我

  
    

“* A * B”

  

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

[有趣的是,在发布这个问题时,即使我不能输入空格:)]

6 个答案:

答案 0 :(得分:3)

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

要停止此行为,您可以在包含元素上使用 (非破坏间距)或white-space: pre CSS。

答案 1 :(得分:3)

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

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

或使用&nbsp;

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

答案 2 :(得分:1)

你应该试试

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

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