Php exec () и пространства в путиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Php exec () и пространства в пути

Сообщение Anonymous »

Я выполняю следующее в приложении PHP: < /p>

Код: Выделить всё

  $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];
Проблема заключается в следующем: у меня есть контроль над $ source , но не $ output_dir , которая является устаревшей файловой системой Windows, и есть Пространства на пути. Пример $ output_dir < /code> is: < /p>

Код: Выделить всё

/home/vol1/district id/store id/this_is_the_file.html
< /code>

При вставке выходной строки в функцию exec () < /code> я попробовал оба: < /p>

addslashes($output_dir)
и '' ''. $ output_dir. В первом случае путь объединяется с: < /p>

Код: Выделить всё

/home/vol1/districtthis_is_the_file.html< /code> < /p>

... где все между первым пространством и именем файла отбрасывается.  Во втором случае, exec () 
, кажется, бросает обувь и не выполняется должным образом - к сожалению, сообщение об ошибке теряется в машине - я могу предоставить ее, если это абсолютно необходимо, но я также также под ограничениями времени, чтобы найти решение. < /p>

Какое решение здесь? Я sprintf () вся строка для exec () ? Я очень смущен тем, почему AddSlashes не работает правильно, чтобы избежать пробелов, и я предполагаю, что это какое -то отношение к дезинфицированию с Exec (), но я не могу найти документацию, чтобы подтвердить ее . < /p>

Обновление: < /strong> Я попытался Escapeshellarg () и preg_replace () без успеха. Думая об этом дальше, мне нужно удвоить путь по пути? Или избежать пути и команды? Если путь разбирается один раз exec () и один раз по php до выполнения команды, вызывает ли мне, что мне нужно учесть оба побега? Или это не так, как это работает?


Подробнее здесь: https://stackoverflow.com/questions/548 ... s-in-paths
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»