如何用正斜杠PHP替换最后的反斜杠

时间:2017-04-18 12:03:44

标签: php url

我想在此网址字符串

上将\替换为/
C:\wamp\www\chm-lib\sekhelp_out\HTML\AS_BUILD.htm

我已经尝试了this link,但没有变化,我遗失了一些东西,请在我错的地方纠正我。

4 个答案:

答案 0 :(得分:2)

以下是使用PHP's string functions代替正则表达式的解决方案。

执行此操作:

System.setOut()

要获得此信息:

$url = 'C:\wamp\www\chm-lib\sekhelp_out\HTML\AS_BUILD.htm';
$pos = strrpos($url, '\\');
$url = substr_replace($url, '/', $pos, 1);

echo $url;

<强>解释

  1. 使用strrpos()
  2. 获取输入字符串中最后C:\wamp\www\chm-lib\sekhelp_out\HTML/AS_BUILD.htm 的位置
  3. 使用substr_replace()
  4. 将其替换为\

    注意

    /代替'\\'传递给'\'作为第二个strrpos() escapes非常重要。

    另请注意,如果您愿意,可以将上面的代码缩短为一行,但我认为它更容易理解。无论如何,这里的代码是一行代码:

    \

答案 1 :(得分:2)

您可以尝试将字符串作为一个数组进行爆炸,然后在弹出最后一部分后将其爆炸,然后用正斜杠将其连接回来。

$array = explode('\','C:\wamp\www\chm-lib\sekhelp_out\HTML\AS_BUILD.htm');
$last = array_pop($array);
$corrected = implode('\',$array) . '/' . $last;

答案 2 :(得分:0)

反斜杠转义很棘手:

preg_replace('/\\\\([^\\\\]*)$/', '/$1', "C:\\wamp\\www\\chm-lib\\sekhelp_out\\HTML\\AS_BUILD.htm")

您必须为文字字符串转义一次,对正则表达式转义一次,因此单个\必须为\\\\(1 x 2 x 2)

答案 3 :(得分:-1)

只需使用此

即可
 str_replace('\\','/','C:\wamp\www\chm-lib\sekhelp_out\HTML\AS_BUILD.htm');