我在证书中进行查找,需要使用if语句来确定如何设置变量
这是我要检查的路径。在这种情况下,它以['utf8String']结束。
$证书[ '即tbsCertificate'] [ '主题'] [ 'rdnSequence'] [0] [0] [ '价值'] [ 'UTF8字符串'];
然而,最后一个[]可能是['utf8String']或者它可能是['printableString']并且基于我想要将其设置为变量的任何东西..我尝试使用以下代码但它不起作用。需要一些建议。
if ($cert['tbsCertificate']['subject']['rdnSequence'][0][0]['value'] == "utf8String") {
$CN = $cert['tbsCertificate']['subject']['rdnSequence'][0][0]['value']['utf8String'];
} else if ($cert['tbsCertificate']['subject']['rdnSequence'][0][0]['value'] != "utf8String") {
$CN = $cert['tbsCertificate']['subject']['rdnSequence'][0][0]['value']['printableString'];
}
答案 0 :(得分:2)
您正在检查密钥而不是值。试试 -
if (array_key_exists('utf8String', $cert['tbsCertificate']['subject']['rdnSequence'][0][0]['value'])) {
// do what you want
} else if (array_key_exists('printableString', $cert['tbsCertificate']['subject']['rdnSequence'][0][0]['value'])) {
// do what you want
}
如果您循环遍历阵列,请更改阵列。