从字符串中删除正斜杠会导致PHP中出现一些问题,包括substr

时间:2013-05-30 13:28:23

标签: php character

我正在尝试从字符串末尾删除正斜杠。

似乎很简单,但我遇到了一些问题。一个非常奇怪的charactar出现在字符串的末尾。看我的代码:

function removeSlash($currentURL)
{

    if ( strpos($currentURL , '/') == (strlen($currentURL)-1) )
            $currentURL = substr( $currentURL, 0, -1 );

    return $currentURL;

}

$url = 'http://bob.com/';
var_dump( removeSlash($url) );

输出:

string(15)"http://bob.com"

以上var_dump表示返回了15个字符,但实际上有14个字符......

所以我忽略它。然后我再写一些代码将它存储在DB中。无形的角色出现了!

在phpMyAdmin中,当我编辑插入输出的行时,这就是显示的内容(在文本字段中):

  

http://bob.com

不知道这是怎么回事。我尝试了str_replace()$var[15] = ''和其他一些方法。一切都在做同样的事情!

2 个答案:

答案 0 :(得分:2)

简单的情况是使用

rtrim($currentUrl, "/");

但根据评论,你可能会更幸运。

function removeSlash($currentURL)
{

    return preg_replace('/[\x00-\x1F\x80-\xFF]/', '', rtrim($currentURL));
}

答案 1 :(得分:0)

你可以尝试:

$url = trim($url, '/');

你的问题非常奇怪,但这可能不是问题。