2015-04-17 5 views
-1

Я делаю поиск в сертификате и нужно использовать, если заявление, чтобы определить, как установить переменнуюPHP, если помощь заявление

Это путь, который я пытаюсь проверить. В этом случае он заканчивается на ['utf8String'].

$ серт [ 'tbsCertificate'] [ 'субъект'] [ 'rdnSequence'] [0] [0] [ 'значение'] [ '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']; 
 
}

+1

Что означает «не работает»? Вы получаете какие-либо ошибки? – Rizier123

ответ

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 
} 

Если вы перебираете массив, то, пожалуйста, измените массив.

+0

Спасибо, что поняли мою проблему лучше, чем я объяснил. Ваш код работает точно по запросу. Цените свою помощь! – user3436467

Смежные вопросы