-1
我想添加第二個條件到現有的代碼,但它似乎並沒有工作。需要幫助添加第二個條件到現有的代碼
的條件是:
- 比較兩個字符串,從不同陣列(工作)
- 並且從不同的陣列檢查的第三字符串的值(不 工作)
下面是沒有第二個條件的工作代碼:http://pastebin.com/bfpNb9zw
這裏是我的嘗試:
基本上,我試圖讓工作位是這部分&& ($ca = '')
&& ($ca = '0')
&& ($ca = '1')
但似乎$ CA不能循環
if(!function_exists('lookup')){
function lookup($chain, $type) {
$cacount = count($chain['tbsCertificate']['extensions']);
for($j = 0; $j < $cacount; $j++) {
$count = count($chain['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, $chain['tbsCertificate'][$type]['rdnSequence'][$i][0]['value']) &&
in_array($chain['tbsCertificate'][$type]['rdnSequence'][$i][0]['type'], $oid)
) {
$value = $chain['tbsCertificate'][$type]['rdnSequence'][$i][0]['value'][$field];
return $value;
$ca = '';
if(isset($chain['tbsCertificate']['extensions'][$j]['extnValue']['cA'])) {
$ca = $chain['tbsCertificate']['extensions'][$j]['extnValue']['cA'];
}
}
}
}
}
return null;
}
}
if (lookup($chain, 'subject') != lookup($chain, 'issuer') && ($ca == '')) {
echo 'end entity';
}
elseif (lookup($chain, 'subject') != lookup($chain, 'issuer') && ($ca == '0')) {
echo 'secondary ca';
}
elseif (lookup($chain, 'subject') != lookup($chain, 'issuer') && ($ca == '1')) {
echo 'primary ca';
} else {
echo 'Root';
}
woops!好的。固定,但現在得到這個'注意:未定義的變量:ca' - 這裏是輸入的副本,如果需要http://pastebin.com/fhe8BdnB – user3436467
在你的代碼(user3436467)中,'$ ca'看起來像它被設置作爲'function'內的局部變量,所以''ca'當然不會出現在'function'之外。 – DWright
@Dwright,有道理,但我怎麼能讓它在函數外部可用? – user3436467