LINUX.ORG.RU

Php. Апостроф в переменной.

 


0

2

Понадобилось переделать один php скрипт (заменить php функцию copy/rename на системные cp/mv). Строка имеет вид

exec ("/bin/mv  -f '$src' '$dst' 2>&1", $output, $retval);


Какое-то время работал, пока не встретился файл с апострофом в имени. То есть в переменной строка например xyz'a, но при подстановке она уже становится xyza. Если в простом случае можно экранировать, то как в php заставить внутри переменной апостроф не трогать, я не знаю. Php никогда не изучал. Просто понадобилось на днях поправить пару строк. Но застрял на этих «подводных камнях».

★★

Последнее исправление: as_lan (всего исправлений: 1)
Ответ на: комментарий от kiotoze

Что-то не получается использовать его. Почитал маны, но использовать с двумя переменными не получилось. Не подскажите готовую строку?

as_lan ★★
() автор топика
Ответ на: комментарий от as_lan

По идее должно работать вот-так, но не тестил

$src = escapeshellarg($src);
$dst = escapeshellarg($dst);

var_dump("/bin/mv  -f $src $dst 2>&1"); // смотрим что происходит

// если дамп верный - разремарить рабочий код
// exec ("/bin/mv  -f $src $dst 2>&1", $output, $retval);

kiotoze ★★★★
()
Ответ на: комментарий от kiotoze

О, отлично! Работает. Спасибо.

as_lan ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.