Замена обратной косой черты - PullRequest
1 голос
/ 24 августа 2011

Я пытаюсь заменить / и \ на //:

$path = 'C:\wamp\www\mysite/bla/bla';
str_replace(array("\/", "\\"), array("\/\/", "\/\/"), $path);

но это не работает: (

Я получаю C:\\/wamp\\/www\mysite/bla/bla ...

Ответы [ 4 ]

1 голос
/ 24 августа 2011

Нет необходимости избегать косой черты, поэтому это мешает сопоставлению с образцом.

Кроме того, str_replace возвращает замену, это не функция byRef, поэтому вам нужно сохранить возвращаемую переменную ( docs ).

Посмотри, как это произошло: http://codepad.org/CNr8P79m

<?php
$path = 'C:\wamp\www\mysite/bla/bla';
$path = str_replace(array("/", "\\"), array("//", "//"), $path);
echo $path;
// output: C://wamp//www//mysite//bla//bla

?>
1 голос
/ 24 августа 2011

Если вы пытаетесь нормализовать пути, тогда я могу рекомендовать заменить все разделители каталогов на /, поскольку это не мешает экранированию и работает как в Linux, так и в Windows.

1 голос
/ 24 августа 2011

Вам не нужно экранировать /, и вам нужно присвоить возвращаемое значение str_replace переменной:

$path = str_replace(array("/", "\\"), array("//", "//"), $path);
0 голосов
/ 24 августа 2011

Вам не нужно избегать косых черт, только обратную косую черту.

$path = 'C:\wamp\www\mysite/bla/bla';
$path = str_replace(array('/', '\\'), array('//', '//'), $path);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...