2010-07-08 31 views
0

我使用了一种解决方案来解决一个问题,然后当我去解决另一个问题时,它使另一个问题再次出现。Str替换并添加空间?

我目前正在使用它来替换带破折号的空格。

$var2 = str_replace(' ', '-', $var2); 

现在说$var2是一个地址,所以5019山街。我曾设置为数字添加%20,以便它将其表示为5 0 1 9。当我把str_replace加上短划线时,就把它搞砸了。

有没有办法把字符串替换,这两个函数?我正在使用它来增加数字之间的空格。

if(is_numeric($var2)){ 
$var2 = addSpaceToStr($var2); 
} 

function addSpaceToStr($str){ 
$strLen = strlen($str); 
$strWithSpace = ''; 
for($i = 0; $i <$strLen; $i++){ 
    $strWithSpace .= $str[$i]; 
    if(($i+1) != $strLen){ 
    $strWithSpace .= '%20'; 
    } 
} 
return $strWithSpace; 
} 

这些是在两个不同的文件,所以我尝试了不同的变化,把他们放在只有一个文件没有成功。以及将它们保存在单独的文件中也没有成功。第一个文件在添加了破折号的情况下卷曲变量,然后第二个文件假设为这些数字添加空格,但现在它不会将空格添加到数字中。有任何想法吗?

谢谢!

+0

你可以添加你输入和你预期的输出请。目前并不明显。 – 2010-07-08 23:06:19

+0

当前提交它将提交5019希尔街。 str_replace将其更改为5019-Hill-Street,将其卷曲为api.php,然后假设仅将“%20”添加到数字中。所以api.php卷曲到最后一页它应该是5%200%201%209-Hill-Street。现在它不会为数字添加“%20”,所以当api.php卷曲到最后一页时,它会发送5019-Hill-Street – user1875332 2010-07-08 23:10:33

+0

它看起来像是你的'addSpaceToStr'函数的一部分被切断了,你能粘贴完整的东西?另外请查看[编辑帮助](http://stackoverflow.com/editing-help),让您的代码部分显示为单间隔。 – tomit 2010-07-08 23:30:26

回答

0

我加入这个修复了这个问题,
$var2 = preg_replace("/(\d)/", '$1 ', $var2);
$var2 = str_replace(' ', '-', $var2);