Код: Выделить всё
$source = '/home/user/file.ext';
$output_dir = $this->setOutputString();
chdir('/home/ben/xc/phplib/bgwatcher-2011a/a01/');
exec('php bin/createjob.php $source $output_dir', $output);
return $output[0];
Код: Выделить всё
/home/vol1/district id/store id/this_is_the_file.html
< /code>
При вставке выходной строки в функцию exec () < /code> я попробовал оба: < /p>
addslashes($output_dir)Код: Выделить всё
/home/vol1/districtthis_is_the_file.html< /code> < /p>
... где все между первым пространством и именем файла отбрасывается. Во втором случае, exec () Какое решение здесь? Я sprintf () вся строка для exec () ? Я очень смущен тем, почему AddSlashes не работает правильно, чтобы избежать пробелов, и я предполагаю, что это какое -то отношение к дезинфицированию с Exec (), но я не могу найти документацию, чтобы подтвердить ее . < /p>
Обновление: < /strong> Я попытался Escapeshellarg () и preg_replace () без успеха. Думая об этом дальше, мне нужно удвоить путь по пути? Или избежать пути и команды? Если путь разбирается один раз exec () и один раз по php до выполнения команды, вызывает ли мне, что мне нужно учесть оба побега? Или это не так, как это работает?
Подробнее здесь: https://stackoverflow.com/questions/548 ... s-in-paths
Мобильная версия