教程下载地址: 网赚博客https://www.piaodoo.com/创业项目排行榜前十名https://www.piaodoo.com/
常见方法
使用反引号执行
<?php
$result = `ipconfig`;
$result = iconv('GBK', 'utf-8', $result);
echo $result;
?>
使用 exec
<?php
$result = exec("ipconfig");
echo $result;
?>
使用 system
<?php
$result = system("ipconfig");
echo $result;
?>
Windows
读取外部普通文件时
<?php
echo (file_get_contents('D:/a.csv'));
?>
注意:直接读取即可。
执行系统命令
<?php
echo `net start ToDesk_Service`;
?>
注意:需要管理员权限或者管理员授权才可以执行。
Linux
Apache
读取外部普通文件时
读取防火墙文件,文件有 r 权限,每级目录都有 rx 权限即可。
<?php
echo (file_get_contents('/etc/firewalld/zones/public.xml'));
?>
执行系统命令时
执行关闭防火墙命令(写一段 PHP 代码,并通过浏览器访问此页面)。
<?php
echo `sudo systemctl stop firewalld`; // 关闭失败
?>
找到关于此命令的位置。
whereis systemctl # 发现位置在 /usr/bin/systemctl
查看目录权限,发现每级目录都有 rx 权限,但依然无法执行。
ll /usr/bin/ | grep systemctl
ll /usr/ | grep bin
ll / | grep usr
解决
使用 root 管理员用户
查看 apache 默认用户(写一段 PHP 代码,并通过浏览器访问此页面)。
<?php
echo 'whoami'; // 显示默认用户为 daemon
?>
尝试改成 root 用户
cd /opt/lampp/etc # 切换到 /opt/lampp/etc/ 目录
vi httpd.conf # 编辑 httpd.conf 文件
/User # 找到 User
User root # 改成 root 用户
Group root # 改成 root 组
重启 lampp
/opt/lampp/lampp restart # 发现启动失败
xampp 集成环境为了安全性考虑不能改成 root 用户访问。
将命令的执行权限赋予给 xampp(Apache)对应的用户。最后执行关闭防火墙命令,即可成功。
vi /etc/sudoers 或 visudo # 编辑 /etc/sudoers 按 G # 将光标移动到最后一行 按 i ,添加 daemon ALL=(ALL) NOPASSWD:ALL 或 daemon ALL=(ALL) NOPASSWD:/usr/bin/systemctl,/usr/bin/firewall-cmd # 添加授权指令 # 含义:给哪个用户授权 允许哪个主机访问=模拟哪个账号执行命令 不要求输入密码:允许执行的命令路径教程下载地址: 网赚博客https://www.piaodoo.com/创业项目排行榜前十名https://www.piaodoo.com/
在PHP中,你可以使用命令行工具执行一些任务,比如运行脚本、执行定时任务等。以下是在PHP中使用命令行工具的几种方法:
一. 使用PHP命令行接口(CLI)
PHP提供了一个命令行接口(CLI),你可以在终端中直接运行PHP脚本。例如,要执行名为script.php的PHP脚本,可以在终端中输入以下命令:
php script.php二.传递参数
你还可以通过命令行向PHP脚本传递参数
在脚本中,可以使用$argv和$argc来获取传递的参数和参数的数量。例如,以下是一个接收两个参数的PHP脚本示例:
<?php $arg1 = $argv[1]; $arg2 = $argv[2];
echo “参数1:”.KaTeX parse error: Undefined control sequence: \n at position 7: arg1."\̲n̲"; echo "参数2:".arg2.“\n”;
?>
在终端中执行上述脚本,并传递两个参数:
php script.php value1 value2
输出:
参数1:value1
参数2:value2
三 使用系统命令
你还可以在PHP脚本中使用系统命令来执行一些任务。PHP提供了shell_exec()、exec()、system()等函数来执行系统命令并获取输出。
shell_exec(), exec(), 和 system() 是 PHP 中用于执行系统命令的函数,它们在一些方面有所不同。下面是它们的区别和使用方法的具体讲解:
1.shell_exec() 函数:
- 返回命令的输出作为字符串。
- 仅返回命令的输出,不返回执行命令的状态。
- 适合于需要获取命令输出的情况。
使用示例:
<?php
$output = shell_exec('ls -l');
echo $output;
?>
2.exec() 函数:
- 返回命令的输出作为数组。
- 返回命令的输出,并将每行输出作为数组中的元素。
- 还返回执行命令的状态,通常0表示成功。
- 适合于需要获取命令输出以及状态的情况。
使用示例:
<?php
$output = exec('ls -l', $outputArray, $returnStatus);
echo implode(“\n”, $outputArray);
echo "返回状态: " . $returnStatus;
?>
3.system() 函数:
直接将命令的输出打印到标准输出(终端)。
不返回命令的实际输出,仅返回最后一行输出。
返回执行命令的状态,通常0表示成功。
适用于只需将输出打印到终端的情况。
使用示例:
<?php
system('ls -l', $returnStatus);
echo "返回状态: " . $returnStatus;
?>
需要注意的是,这些函数都允许执行系统命令,所以在使用它们时需要确保你信任并验证用户输入,以避免安全问题。此外,确保你的 PHP 环境具有足够的权限来执行相应的操作。
这些都是使用PHP命令行工具的一些基本方法,可以根据具体需求来选择使用哪种方法。
到此这篇关于PHP中命令行工具的使用详解的文章就介绍到这了,更多相关PHP命令行内容请搜索网赚博客http://www.piaodoo.com/以前的文章或继续浏览下面的相关文章希望大家以后多多支持网赚博客http://www.piaodoo.com/!
友情连接:
茂名一技http://www.szsyby.net/
茂名一技http://www.enechn.com/
美文集http://www.tpyjn.cn/
手游排行前十名http://www.bjkhrx.com/
蔚来汽车http://www.weilaiqiche.cn/
图片
以上就是PHP中如何执行系统命令的详细内容,更多关于PHP执行系统命令的资料请关注网赚博客http://www.piaodoo.com/其它相关文章!
友情连接:
茂名一技http://www.szsyby.net/
茂名一技http://www.enechn.com/
美文集http://www.tpyjn.cn/
手游排行前十名http://www.bjkhrx.com/
蔚来汽车http://www.weilaiqiche.cn/