我正在尝试编写一个PHP脚本,用于验证用户计算机中是否正确安装了正确的程序和库。
我使用以下代码行生成程序列表:
$installed_programs_list = shell_exec("wmic product get name,version /format:csv");
有一行应该是
英特尔®可信连接服务客户端,1.28.487.1
但我的字符串比较失败,因为$ installed_programs_list变量具有Intelr Trusted Connect Service Client,1.28.487.1。
我尝试使用mb_detect_encondig,但它似乎无法检测到该行。它显示所有其他线路的ASCII,但英特尔®线路没有。我试图强制使用UTF-8但没有运气。我不知道我是否做得对。
我尝试将输出保存到.csv文件并使用fread()读回来,字符串显示Intel
这是我的代码:
shell_exec("wmic product get name,version /format:csv > software_list.csv");
// get contents of a file into a string
$filename1 = "software_list.csv";
$handle = fopen($filename1, "rb");
$installed_programs_list = fread($handle, filesize($filename1));
fclose($handle);
echo $installed_programs_list;
进一步说明:
//check if correct programs are installed
foreach($installed_programs as $value){
if(mb_strpos($installed_programs_list, trim($value)) === false){
print_div("$value not installed.", "red");
$test_passed = 0;
}else{
print_div("$value installed.", "blue");
}
}
我的目标是在PHP中为我的公司创建一系列自动化测试。
非常感谢你的帮助!