如何在PHP中检查十六进制标志?
我已经编写了一个小的web应用程序来监控我更大版本的版本,现在我决定以十六进制标志的形式发送一些信息,比如000000000000C19B。mysql db字段是一个utf8 16varchar 在php脚本中,我有一个从0x800000到0x01的数组如何在PHP中检查十六进制标志?,php,Php,我已经编写了一个小的web应用程序来监控我更大版本的版本,现在我决定以十六进制标志的形式发送一些信息,比如000000000000C19B。mysql db字段是一个utf8 16varchar 在php脚本中,我有一个从0x800000到0x01的数组 $gFlagsLong = array( 0x800000 => "Reserv6", //24 0x400000 => "Reserve5", //23 0x2000
$gFlagsLong = array( 0x800000 => "Reserv6", //24
0x400000 => "Reserve5", //23
0x200000 => "Flag22", //22
0x100000 => "Flag21", //21
0x80000 => "Flag20", //20
0x40000 => "Flag19", //19
0x20000 => "Flag18", //18
0x10000 => "Flag17", //17
0x8000 => "Flag16", //16
0x4000 => "Flag15", //15
0x2000 => "Flag14", //14
0x1000 => "Flag13", //13
0x800 => "Flag12", //12
0x400 => "Reserve2", //11
0x200 => "Flag10", //10
0x100 => "Flag9", //9
0x80 => "Reserve1", //8
0x40 => "Flag7", //7
0x20 => "Flag6", //6
0x10 => "Flag5", //5
0x08 => "Flag4", //4
0x04 => "Flag3", //3
0x02 => "Flag2", //2
0x01 => "Flag1" ); //1
我试着,像在C中一样,如果设置了任何一个值,我就修改这个字符串
$sFlags ="000000000000C19B";
$sCheck = "X";
$sNCheck = " "; // html space char
$sTemp = "";
foreach($gFlagsLong as $nKey => $sBez){
if($sFlags & $nKey) $sTemp = $sCheck;
else $sTemp = $sNCheck;
echo "<td id='flag' title='" . $sBez . "'>" . $sTemp . "</td>";
}
不幸的是,它不能正常工作。代码可以工作,但按位和按位的顺序在这里似乎不正确。我有假阳性和假阴性。 我在谷歌上搜索了一下,但说实话,我不知道该搜索什么。PHP不是我最擅长的领域。
如果您能提供任何帮助,我将不胜感激。按位运算和整数运算,您试图在字符串上使用它 将$sFlags更改为$sFlags=0x000000000000C19B;在你的测试中
当你从mysql中选择它们时,请取消显示标志不幸的是,它不起作用。这不是任何人都可以处理的问题描述。是的,你的实际问题还不清楚。当然,您可以在php中使用位AND运算符。但目前还不清楚你的代码实际上是用来做什么的。对不起,我认为有了这些信息就足够了。好的,代码可以工作,但是按位和按位的代码在这里似乎不正确。我有假阳性和假阴性。非常感谢!这是拼图中缺失的一块。但是,我从mysqli结果行中获取了标志,并且找不到UNHEX的位置。但是我在字符串前面加了0x,并在PHP脚本中使用了hexdec。这也很好用。