我正在证书中进行查找,需要使用 if 语句来确定如何设置变量
这是我尝试检查的路径。在本例中,它以 ['utf8String'] 结尾。
$cert['tbsCertificate']['subject']['rdnSequence'][0][0]['value']['utf8String'];
但是,最后一个 [] 可以是 ['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'];
}
您正在检查键而不是值。尝试使用 -
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
}
如果您正在循环访问数组,那么请更改数组。