Не могу заменить \\ на \ в php
Я не могу заменить \\
с \
я использовал следующий код
$current_relative_path = dirname(__FILE__); // E:\\xampp\\htdocs\\1\\wp-content\\plugins
$result = str_replace("\\\\", "\\", $current_relative_path);
file_put_contents("___test.php",var_export($result, true)."\n<br><br>\n", FILE_APPEND);
Я получаю вывод, как это
E:\'xampp\'htdocs\'1\'wp-content\'plugins
Я не могу запустить php с escape \
в str_replace
функционировать любую идею мне нужно положить как следовать E:\xampp\htdocs\1\wp-content\plugins
5 ответов
С помощью preg_replace
работает для меня:
$current_relative_path = 'E:\\xampp\\htdocs\\1\\wp-content\\plugins';
$current_relative_path = preg_replace('/\\\\/', '\\', $current_relative_path);
echo $current_relative_path;
выходы
E:\xampp\htdocs\1\wp-content\plugins
А за обновленный вопрос: когда вы используете dirname(__FILE__)
альтернативное решение может быть realpath()
:
$current_relative_path = realpath($current_relative_path);
? Я не могу проверить это на моей собственной системе, но цель с realpath
это то, что вы пытаетесь сделать. Вам нужен доступ к файловой системе, но что-то подсказывает, что у вас уже есть...
Когда ты echo
исходную строку, браузер покажет \
вместо \\
, он использует первую косую черту, чтобы избежать второй косой черты, см. демонстрацию, которую я предоставил:
$current_relative_path = "E:\\xampp\\htdocs\\1\\wp-content\\plugins";
echo $current_relative_path;
Вот рабочая ДЕМО
РЕДАКТИРОВАТЬ НА ОСНОВЕ КОММЕНТАРИЙ
Если вы не собираетесь распечатывать вывод в браузере, попробуйте это:
$current_relative_path = "E:\\xampp\\htdocs\\1\\wp-content\\plugins";
$result= str_replace('\\\\', '\\', $current_relative_path);
$result = str_replace("'", "", $result); //remove single quotes
Использовать этот:
$current_relative_path = "E:\\xampp\\htdocs\\1\\wp-content\\plugins";
$current_relative_path = str_replace("\\\\", "\\", $current_relative_path);
echo $current_relative_path;
// Output - E:\xampp\htdocs\1\wp-content\plugins
Вам просто нужно удалить косую черту с помощью PHP stripslshes()
функция.
$current_relative_path = "E:\\xampp\\htdocs\\1\\wp-content\\plugins";
echo stripslashes($current_relative_path );
Вы можете проверить онлайн, передав свою строку в ссылке.
https://www.tools4noobs.com/online_php_functions/stripslashes/
Примечание: PHP директива magic_quotes_gpc должна быть включена. http://php.net/manual/en/function.stripslashes.php
Посмотрите на ваш синтаксис Заменить
$ current_relative_path = str_replace ("\", '\' ', $ current_relative_path);
Вы включили одинарную кавычку как часть строки замены ('\''). Удалите одну одинарную кавычку ('\').