Задать вопрос
@iliks

Висит скрипт из за exec() и popen() не учитывает пробелы, как решить?

Всем привет и всем добра!
popen("start /b C:/Users/il-ne/Desktop/Sublime Text 3.lnk", "r"); //не находит файл (из за пробелов в строке)

exec('"C:/Users/il-ne/Desktop/Sublime Text 3.lnk" ' . dirname (__FILE__) . "/" . $dir . "/file.php");  // выполняется но скрипт зависает 

echo json_encode(array('data1' => true, 'data2' => '/?page=url')); //выполнится только после закрытия программы sublime text


popen('start /b "C:/Users/il-ne/Desktop/Sublime Text 3.lnk"', "r"); //не выполняется (не знаю почему)

exec('"C:/Users/il-ne/Desktop/Sublime Text 3.lnk" ' . dirname (__FILE__) . "/" . $dir . "/file.php");  // выполняется но скрипт зависает 

echo json_encode(array('data1' => true, 'data2' => '/?page=url')); //выполнится только после закрытия программы sublime text


создал ярлык внутри проекта и дал ему название без пробелов
popen('start /b Sublime.lnk', "r"); //выполняется

exec('"Sublime.lnk" ' . dirname (__FILE__) . "/" . $dir . "/file.php");  // выполняется и файл открывается

echo json_encode(array('data1' => true, 'data2' => '/?page=url')); //выполнится после открытия файла


Проблема в том что если программа закрыта и используя только exec() скрипт зависает, но если программа уже открыта то скрипт функционирует нормально. Пробовал через разные (правила/не правила) в exec() типо >NUL и т.д. не работает, скрипт всегда виснет. Перерыл не одну страницу в гугле/яшке и не нашел решения, кроме как использовать popen для открытия программы, а далее использовать exec для запуска файлов в ней. Но проблема в том, что в popen() не учитываются пробелы как я не старался. Я понимаю, что я скорее всего делаю что-то не так, но понять, что именно не могу. Надеюсь на вашу помощь.
  • Вопрос задан
  • 231 просмотр
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@iliks Автор вопроса
нашел на просторах интернетов вот такое решение:

echo json_encode(array('data1' => true, 'data2' => '/?page=url'));

$file = 'C:/Users/il-ne/Desktop/Sublime Text 3.lnk';
$args = dirname (__FILE__) . "/" . $dir . "/file.php";
	
pclose(popen("start \"bla\" \"" . $file . "\" " . $args, "r"));


нашел тут: https://www.somacon.com/p395.php
там же есть еще пара способов для решения такой задачи
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽