PHP Conditional Help

Hoping to get some help adding a condition to this loop

The current code works, but there is an assumption that the data I am trying to collect is under [0]

, however after some testing I found that this is not the case and I need to check all the elements [0], [1], [2]

.. difficult to explain this please refer to the image below for step by step refinement.

$count = count($cert['tbsCertificate']['extensions'][0]['extnValue']);
for($i = 0; $i < $count; $i++) {
     if(array_key_exists('dNSName', $cert['tbsCertificate']['extensions'][0]['extnValue'][$i])) {
        $value = $cert['tbsCertificate']['extensions'][0]['extnValue'][$i]['dNSName'];
        $item = $i;
        echo 'DNSName',$item,'   : ', $value,"\n";
    }
}

      

Here's a visual representation of what to do.

enter image description here

PS I'm not a php expert, so I need your help to write the code.

  • UPDATE (SEMI WORKING CODE) -
    $extensions = count($cert['tbsCertificate']['extensions']);
    for($j = 0; $j < $extensions; $j++) 
    {
    $count = count($cert['tbsCertificate']['extensions'][$j]['extnValue']);
    for($i = 0; $i < $count; $i++) {
         if(array_key_exists('dNSName', $cert['tbsCertificate']['extensions'][$j]['extnValue'][$i])) {
            $value = $cert['tbsCertificate']['extensions'][$j]['extnValue'][$i]['dNSName'];
            $item = $i;
            echo 'DNSName',$item,'   : ', $value,"\n";
        }
    }
 }

      

- CERTIFICATE -

-----BEGIN CERTIFICATE-----
MIIHqjCCBpKgAwIBAgIQbY5du3wWeFH4otbLa18wRTANBgkqhkiG9w0BAQsFADB3
MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAd
BgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVj
IENsYXNzIDMgRVYgU1NMIENBIC0gRzMwHhcNMTQwNDMwMDAwMDAwWhcNMTUwNzE3
MjM1OTU5WjCCASkxEzARBgsrBgEEAYI3PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIB
AgwIRGVsYXdhcmUxHTAbBgNVBA8TFFByaXZhdGUgT3JnYW5pemF0aW9uMRAwDgYD
VQQFEwcyMTU4MTEzMQswCQYDVQQGEwJVUzEOMAwGA1UEEQwFOTQwNDMxEzARBgNV
BAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxGTAXBgNVBAkM
EDM1MCBFbGxpcyBTdHJlZXQxHTAbBgNVBAoMFFN5bWFudGVjIENvcnBvcmF0aW9u
MScwJQYDVQQLDB5Db3JwIE1rdGcgJiBDb21tcyAtIE9ubGluZSBFeHAxGTAXBgNV
BAMMEHd3dy5zeW1hbnRlYy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQCmz0vJ7McLUYVToIQzqWDLzUFD1uhAOz+3XAHXGnAOGwWw9fXGFAjWkE65
uC2pC/ZcMUarS+aJvvrCNB4mEewPiat0+9QRHEh/iCxFvhhLxM95HTe+b0Qckp3K
nKOutJNLdKCzkY1PUUeciV1rThGdh4X9DRt4TbqSyHz5MaOv10XieyHTe+XrhxHD
LhmJCrzNKgEZsNOhHS0kfDrCXB0zZ+D1P5/6BmWfip61XsFyDLIqlKcWpgqGSscO
e5QcSxKyKi5S6mldxMGfxH61HCBROs8ZpmADb7wJ85dZ0xZlRmdTQOUdttl9bAFF
lVlH10GYRrWU+/KaoPTVUZHwPUxbAgMBAAGjggN8MIIDeDCCAisGA1UdEQSCAiIw
ggIeghtzdGF0aWMxLnN5bWFudGVjY29udGVudC5jb22CG3N0YXRpYzIuc3ltYW50
ZWNjb250ZW50LmNvbYIbc3RhdGljMy5zeW1hbnRlY2NvbnRlbnQuY29tghNmYXN0
ZXIuc3ltYW50ZWMuY29tgg9nby5zeW1hbnRlYy5jb22CDm0uc3ltYW50ZWMuY29t
gh1zZWN1cml0eXJlc3BvbnNlLnN5bWFudGVjLmNvbYIQd3d3LnN5bWFudGVjLmNv
bYIPbXkuc3ltYW50ZWMuY29tghdwYXJ0bmVybmV0LnN5bWFudGVjLmNvbYISbXkt
cWEuc3ltYW50ZWMuY29tghNteS11YXQuc3ltYW50ZWMuY29tghpwYXJ0bmVybmV0
LXFhLnN5bWFudGVjLmNvbYIbcGFydG5lcm5ldC11YXQuc3ltYW50ZWMuY29tghtw
YXJ0bmVybmV0LXNpdC5zeW1hbnRlYy5jb22CIHBhcnRuZXJuZXQtaW50ZXJuYWwu
c3ltYW50ZWMuY29tghxwYXJ0bmVybmV0LXRlbXAuc3ltYW50ZWMuY29tghVzaXRl
cy1xYS5zeW1hbnRlYy5jb22CFnNpdGVzLXVhdC5zeW1hbnRlYy5jb22CG3NpdGVz
LWludGVybmFsLnN5bWFudGVjLmNvbYISc2l0ZXMuc3ltYW50ZWMuY29tghViY3Bv
cnRhbC5zeW1hbnRlYy5jb20wCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCBaAwHQYD
VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMGYGA1UdIARfMF0wWwYLYIZIAYb4
RQEHFwYwTDAjBggrBgEFBQcCARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYI
KwYBBQUHAgIwGRoXaHR0cHM6Ly9kLnN5bWNiLmNvbS9ycGEwHwYDVR0jBBgwFoAU
AVmr5906C1mmZGPWzyAHV9WR52owKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3Ny
LnN5bWNiLmNvbS9zci5jcmwwVwYIKwYBBQUHAQEESzBJMB8GCCsGAQUFBzABhhNo
dHRwOi8vc3Iuc3ltY2QuY29tMCYGCCsGAQUFBzAChhpodHRwOi8vc3Iuc3ltY2Iu
Y29tL3NyLmNydDANBgkqhkiG9w0BAQsFAAOCAQEALttpAtX5PT4WS89MysOHldNr
764RwDutieStd1i0SxPixuvYrpMkBqooK6HcWHXMRf4dLRUhYbWh3rmWaRVrP9ja
LQbcjpdDcInD3XNkq3evR5N4wkyZNknjrQgvruQQYBzSNqX2HeYfJn/+Vc/+70v9
0Iik+GlOYuCacmZkCR7HW4HAXwPRZds+RPTteh+XDxBQkgMlivylgy4qWqyOVVS3
103qpWp2PCJDpYFVBZWedly0DNjlWbNRvSFJEUqwP8OeJ3+C6zNdNJPdFmCC1YFr
o8s3Lti08voNZlbPGl/C2Ko0oRoQ67m/aUGkLehHfionykCTpSIHL965TW+Y4g==
-----END CERTIFICATE-----

      

- UPDATE 2 (Current Output) -

enter image description here

0


source to share


1 answer


Surround this code

$extensions = count($cert['tbsCertificate']['extensions']);
for($j = 0; $j < $extensions; $j++) 
{
   Existing code
}

      



And replace extensions [0] with extensions [j]

+1


source







All Articles