


How to start Windows applications, execute bat batch processing, and execute cmd commands in PHP (detailed explanation of exec and system functions), detailed explanation of exec function_PHP tutorial
How to start Windows applications, execute bat batch processing, and execute cmd commands in PHP (detailed explanation of exec and system functions), detailed explanation of exec function
Exec or system can call cmd commands
Go directly to the code:
/**Open the windows calculator*/
exec('start C:WindowsSystem32calc.exe');
/**After php generates the windows batch file, then execute the batch file*/
$filename = 't.bat';
$somecontent = 'C:
';
$somecontent .= 'cd "C:/Program Files/MySQL-Front"';
$somecontent .= '
start MySQL-Front.exe';
if (!$handle = fopen($filename, 'w')) {
echo "Cannot open file $filename";
exit;
}
/**First we need to make sure the file exists and is writable*/
if (is_writable($filename)) {
/**That is where $somecontent will be written when we use fwrite()
Write $somecontent to the file we opened.*/
if (fwrite($handle, $somecontent) === FALSE) {
echo "Cannot write to file $filename";
exit;
}
echo "Successfully written $somecontent to file $filename";
fclose($handle);
} else {
echo "File $filename is not writable";
}
exec($filename);
?>
There is a remaining problem, which is the exec() call. PHP will continue to execute until you close the started application. This will cause the PHP execution to time out. I don’t know how to solve this problem. I hope experts will pass by here and leave answers! I will solve it in the future and will update it here!
The following comes from information
================================================== ==
PHP’s built-in functions exec and system can call system commands (shell commands), and of course there are functions such as passthru and escapeshellcmd.
In many cases, using PHP's exec, system and other functions to call system commands can help us complete our work better and faster.
Note: If you want to use these two functions, the safe mode in php.ini must be turned off, otherwise php will not allow calling system commands for security reasons.
First take a look at the explanation of these two functions in the PHP manual:
exec --- Execute external program
Syntax: string exec ( string command [, array &output [, int &return_var]] )
Description:
exec() executes the given command command, but it does not output anything. It simply returns the last line from the result of the command. If you need to execute a command and get all the information from the command, you can use it. passthru() function.
If the argument array is given, the specified array will be filled with each line output by the command. Note: If the array already contains some elements, exec() will append it to the end of the array. If you don't want to To append elements to this function, you can call unset() before passing the array to exec().
If the parameters array and return_var are given, the status command returned by the execution will be written to this variable.
Note: If you allow data from user input to be passed to this function, then you should use escapeshellcmd() to ensure that the user cannot trick the system into executing arbitrary commands.
Note: If you use this function to start a program and want to leave it while executing in the background, you must make sure that the output of the program is redirected to a file or some output data. stream, otherwise PHP will hang until the program execution ends.
system --- Execute external programs and display output
Syntax: string system ( string command [, int &return_var] )
Description:
system() executes the given command command and outputs the result. If the parameter return_var is given, the status code of the executed command will be written to this variable.
Note: If you allow data from user input to be passed to this function, then you should use escapeshellcmd() to ensure that the user cannot trick the system into executing arbitrary commands.
Note: If you use this function to start a program and want to leave it while executing in the background, you must make sure that the output of the program is redirected to a file or some output data. stream, otherwise PHP will hang until the program execution ends.
If PHP is running as a server module, system() will try to automatically clear the web server's output buffer after each line of output.
Returns the last line of the command if successful, false if failed.
If you need to execute a command and get all the data from the command, you can use the passthru() function.
These two are used to call system shell commands,
Differences:
Exec can return all execution results to the $output function (array). $status is the execution status. 0 means success and 1 means failure
systerm does not need to provide the $output function. It returns the result directly. Similarly, $return_var is the execution status code. 0 is success and 1 is failure
exec example:
$a = exec("dir", $out, $status);
print_r($a);
print_r($out);
print_r($status);
?>
system example:
$a = system("dir", $status);
print_r($a);
print_r($status);
?>
The above instructions may seem a bit confusing, but you will understand after running two examples!
【system】
set_time_limit(0);
define('ROOT_PATH', dirname(__FILE__));
include ROOT_PATH . '/include/global.func.php';
$cmdTest = 'ps -ef | grep magent';
$lastLine = system($cmdTest, $retVal);
write_log('$lastLine');
write_log($lastLine);
write_log('$retVal');
write_log($retVal);
?>
Output:
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:28:52
$lastLine
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:28:52
root 5375 5373 0 16:28 pts/1 00:00:00 grep magent
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:28:52
$retVal
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:28:52
0
[exec]
set_time_limit(0);
define('ROOT_PATH', dirname(__FILE__));
include ROOT_PATH . '/include/global.func.php';
$cmdTest = 'ps -ef | grep magent';
$lastLine = exec($cmdTest, $output, $retVal);
write_log('$lastLine');
write_log($lastLine);
write_log('$output');
write_log($output);
write_log('$retVal');
write_log($retVal);
?>
Output:
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
$lastLine
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
root 5360 5358 0 16:25 pts/1 00:00:00 grep magent
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
$output
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
Array
(
[0] => root 2838 1 0 15:39 ? 00:00:00 magent -u root -n 51200 -l 192.168.137.100 -p 12001 -s 192.168.137.100:11211 -b 192.1 68.137.100:11212
[1] => root 5358 5356 0 16:25 pts/1 00:00:00 sh -c ps -ef | grep magent
[2] => root 5360 5358 0 16:25 pts/1 00:00:00 grep magent
)
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
$retVal
++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
0
Conclusion:
If you need detailed output results, use exec()! I usually use exec() to execute external commands!
Reference:
http://php.net/manual/zh/function.system.php
http://php.net/manual/zh/function.exec.php
Use Notepad to write down your command and save it as a batch file, (suffix .bat).
Use winexec function to run this batch process
The function uses these two exec();system(); If it doesn’t work, it may be that you wrote the command wrong. $str =null;exec(\"dir c:\",$str);Usage as above;

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Multiple calls to session_start() will result in warning messages and possible data overwrites. 1) PHP will issue a warning, prompting that the session has been started. 2) It may cause unexpected overwriting of session data. 3) Use session_status() to check the session status to avoid repeated calls.

AI can help optimize the use of Composer. Specific methods include: 1. Dependency management optimization: AI analyzes dependencies, recommends the best version combination, and reduces conflicts. 2. Automated code generation: AI generates composer.json files that conform to best practices. 3. Improve code quality: AI detects potential problems, provides optimization suggestions, and improves code quality. These methods are implemented through machine learning and natural language processing technologies to help developers improve efficiency and code quality.

session_start()iscrucialinPHPformanagingusersessions.1)Itinitiatesanewsessionifnoneexists,2)resumesanexistingsession,and3)setsasessioncookieforcontinuityacrossrequests,enablingapplicationslikeuserauthenticationandpersonalizedcontent.

Handling high DPI display in C can be achieved through the following steps: 1) Understand DPI and scaling, use the operating system API to obtain DPI information and adjust the graphics output; 2) Handle cross-platform compatibility, use cross-platform graphics libraries such as SDL or Qt; 3) Perform performance optimization, improve performance through cache, hardware acceleration, and dynamic adjustment of the details level; 4) Solve common problems, such as blurred text and interface elements are too small, and solve by correctly applying DPI scaling.

HTML5 brings five key improvements: 1. Semantic tags improve code clarity and SEO effects; 2. Multimedia support simplifies video and audio embedding; 3. Form enhancement simplifies verification; 4. Offline and local storage improves user experience; 5. Canvas and graphics functions enhance the visualization of web pages.

MySQL functions can be used for data processing and calculation. 1. Basic usage includes string processing, date calculation and mathematical operations. 2. Advanced usage involves combining multiple functions to implement complex operations. 3. Performance optimization requires avoiding the use of functions in the WHERE clause and using GROUPBY and temporary tables.

To safely and thoroughly uninstall MySQL and clean all residual files, follow the following steps: 1. Stop MySQL service; 2. Uninstall MySQL packages; 3. Clean configuration files and data directories; 4. Verify that the uninstallation is thorough.

Cross-platform development in C is recommended to use VisualStudioCode, CLion and QtCreator. 1. VisualStudioCode is lightweight and flexible, suitable for multi-platform development, but the initial configuration is more complicated. 2. CLion integrates CMake, suitable for cross-platform projects, but licenses are expensive. 3.QtCreator supports cross-platform development, with built-in Qt library, but the learning curve is steep.
