本帖最后由 鬼鬼辅助 于 2025-1-19 18:58 编辑
大家可能在开发一些平台过程中,需要用到一些爬虫来进行一些cha询功能php写爬虫很鸡肋,后期维护也麻烦。
问:有没有办法php调用易语言呢?
答:有!
解决办法如下:
1.易语言写个控制台程序。
2.接收启动时的参数(不懂的百du:带参数执行exe)
测试 ()返回 (0 ) 变量名 | 类 型 | 静态 | 数组 | 备 注 | 命令数组 | 文本型 | | 0 | user | 文本型 | | | pass | 文本型 | | | _errorMsg | 文本型 | | | 取命令行 (命令数组 )user = 命令数组 [1 ]pass = 命令数组 [2 ]如果 (登录 (user, pass, _errorMsg )) 标准输出 (1, “true”)标准输出 (1, _errorMsg )
3.后端php代码加上带命令执行exe
[PHP] 纯文本查看 复制代码 function checkUserName()
{
$user = $_POST['user'];
$pass = $_POST['pass'];
$exeFilePath = ROOT_PATH . 'public\\model\\hyw.exe';
// 检查文件是否存在
if (!file_exists($exeFilePath)) {
$this->result('', 1, '插件文件不存在', 'json');
}
$parameters = "$user $pass";
$command = escapeshellcmd($exeFilePath) . ' ' . $parameters;
$output = [];
$returnCode = 0;
// 使用 exec 函数来执行命令,它会在服务器端运行指定的命令(这里就是运行.exe 文件及参数)
exec($command, $output, $returnCode);
if ($returnCode === 0) {
if($output[0]==='true'){
$this->result($returnCode, 0, 'success', 'json');
}else{
$this->result('1', 3, iconv('GBK', 'UTF-8', $output[0]), 'json');
}
} else {
// 如果返回码不为 0,说明执行出现问题,尝试输出错误信息
if ($returnCode === 1) {
// 尝试使用 2>&1 重定向标准错误输出到标准输出,以获取更多信息
$command_with_error = $command . " 2>&1";
$error_output = [];
exec($command_with_error, $error_output);
echo "执行错误:" . implode("\n", $error_output);
}
$this->result($returnCode, 2, 'cha询课程失败!', 'json');
}
}
|