如果在localhost上运行此脚本,则会为您提供硬盘序列号。 我的硬盘序列号是:CC17-BEBF
<?php
function GetVolumeLabel($drive) {
if (preg_match('#Volume Serial Number is (.*)\n#i', shell_exec('dir '.$drive.':'), $m)) {
$volname = ' ('.$m[1].')';
} else {
$volname = '';
}
return $volname;
}
$serial = str_replace("(","",str_replace(")","",GetVolumeLabel("c")));
echo $serial;
?>
结果是: CC17-BEBF
如果我正在运行
<?php
if ($serial == 'CC17-BEBF') {
echo 'true';
} else {
echo 'false';
}
?>
结果是: false
为什么?
答案 0 :(得分:1)
尝试在串行前添加空格键:
if ($serial == " CC17-BEBF") {
echo 'true';
} else {
echo 'false';
}
或在声明trim()
时添加$serial
函数:
$serial = trim(str_replace("(","",str_replace(")","",GetVolumeLabel("c"))));
防止增加空白区域。