Я хотел бы проверить, если строка $value
в двух разных массивах совпадают. Если они совпадают, сделайте что-нибудь. Если они не совпадают, сделайте что-нибудь.
Вот код для отдельного получения строкового значения, но я хотел бы, если возможно, объединить их вместе, а затем сравнить строки на предмет соответствия.
Вот первый поиск
$count = count($cert['tbsCertificate']['subject']['rdnSequence']);
$exists = array('utf8String', 'printableString', 'teletexString', 'bmpString', 'universalString', 'ia5String');
$oid = array('id-at-commonName');
for($i = 0; $i < $count; $i++) {
foreach($exists as $field) {
if(
array_key_exists($field, $cert['tbsCertificate']['subject']['rdnSequence'][$i][0]['value']) &&
in_array($cert['tbsCertificate']['subject']['rdnSequence'][$i][0]['type'], $oid)
) {
$value = $cert['tbsCertificate']['subject']['rdnSequence'][$i][0]['value'][$field];
echo $value;
break; // stop further looping
}
}
}
Вот второй поиск:
$count = count($cert['tbsCertificate']['issuer']['rdnSequence']);
$exists = array('utf8String', 'printableString', 'teletexString', 'bmpString', 'universalString', 'ia5String');
$oid = array('id-at-commonName');
for($i = 0; $i < $count; $i++) {
foreach($exists as $field) {
if(
array_key_exists($field, $cert['tbsCertificate']['issuer']['rdnSequence'][$i][0]['value']) &&
in_array($cert['tbsCertificate']['issuer']['rdnSequence'][$i][0]['type'], $oid)
) {
$value = $cert['tbsCertificate']['issuer']['rdnSequence'][$i][0]['value'][$field];
echo $value;
break; // stop further looping
}
}
}
Поместите ваш код поиска в функцию, которая принимает тип в качестве параметра и возвращает найденное значение. Затем сравните два звонка.
function lookup($cert, $type) {
$count = count($cert['tbsCertificate'][$type]['rdnSequence']);
$exists = array('utf8String', 'printableString', 'teletexString', 'bmpString', 'universalString', 'ia5String');
$oid = array('id-at-commonName');
for($i = 0; $i < $count; $i++) {
foreach($exists as $field) {
if(
array_key_exists($field, $cert['tbsCertificate'][$type]['rdnSequence'][$i][0]['value']) &&
in_array($cert['tbsCertificate'][$type]['rdnSequence'][$i][0]['type'], $oid)
) {
$value = $cert['tbsCertificate'][$type]['rdnSequence'][$i][0]['value'][$field];
return $value;
}
}
}
return null;
}
if (lookup($cert, 'subject') == lookup($cert, 'issuer')) {
// do something
}
Других решений пока нет …