10/10/2018, 00:24

Run command line trong PHP

Em đang viết php kết hợp với application chạy trên server Windows.
Application này support command line để truyền tham số luôn.
Vd:
testapp.exe -userid 5089 -description 'Some description' -isUpdate 1

Có bác nào biết cách chạy command line từ PHP không, giúp em với, many thanks, hic...
3do viết 02:41 ngày 10/10/2018
xem http://php.net/exec
thangbe_apt viết 02:38 ngày 10/10/2018
system(), exec() ,shell_exec() ...
nhiều lắm , bạn dùng hàm nào cũng được
sothub1 viết 02:39 ngày 10/10/2018
Chà các bạn
Tôi đã thử nhièu cách rồi mà vẫn chưa được .
Không báo lỗi cũng ko có chuyện ji2 xuất hiện .. Thiệt hêt cách

exec("start notepad.exe");
hay
exec("start c:\\pro\\totalcmd\\TOTALCMD.EXE ");
hay
$last_line = system("c:\\pro\\totalcmd\\TOTALCMD.EXE",$result);
hay
exec ("p***ec -u username -p pass -c \\\\hostname c:\\pro\\totalcmd\\TOTALCMD.EXE");


hekl me
AnhTuanKB viết 02:27 ngày 10/10/2018
Bạn chạy trên win gì, nếu win xp thì có thể sẽ chạy bình thường. Còn nếu win sever thì bạn mở task manager ra xem, có thể nó bị ẩn. Vì lúc đó user kích hoạt nó là network service, đối với user này thì chỉ có thể chạy các ứng dụng background, ko thể chay UI được.
sothub1 viết 02:39 ngày 10/10/2018
Chào bạn , cảm ơn bạn đã quan tâm
Hiện tôi đang sử dụng OS winxp , SP3 .
Đúng là trong task thì application đã được gọi lên .
Vậy trong trường hợp này làm sao sử dụng application dạng UI được

Mong các bạn hướng dẫn

Thnks
vuthiem108 viết 02:39 ngày 10/10/2018
Chào các bạn, tôi cũng đang gặp vấn đề khi muốn chạy chương trình thông qua exec() or system().

Ở đây, tôi có thể thực hiện các lệnh DOS (net start, dir, del) bằng cách exec('net start',$output), exec('dir /w',$output) nhưng không thể thực hiện exec('notepad.exe',$output) hay một ứng dụng mà tôi tạo ra (myapp.exe). Ai biết xin chi giáo.

Tôi cũng đã thay đổi safe_mode = on, và safe_mode_exec_dir ="c:\path\" (và cả safe_mode_exec_dir ="c:/path/") nhưng không cai thien dc gi!

Cùng quan tâm mong các bạn chia sẻ giải pháp.

[=========> Bổ sung bài viết <=========]

Mình vừa tìm ra nguyên nhân tại sao exec() không chạy được các chương trình khác ngoài các lệnh của Windows, để làm được việc này, ta cần thay đổi trong php.ini

1) Tìm dòng và đổi off thành On, safe_mode = On.
2) tìm và gán, safe_mode_exec_dir ="C:\path\appdir"
3) Restart lại Httpd

lúc này, chúng ta có thể thực hiện được các chương trình nằm trong appdir.

Tuy nhiên, ta chỉ thấy được chương trình trong process. Tôi chưa thử để mở được giao diện.

Chúc may mắn.!
Bài liên quan
0