<?php 
  require('filedetailsparser.php'); 
 
  $filepath = 'C:\Program Files\Git\git-bash.exe'; 
  $error = false; 
  try { 
      $filedetails = new filedetailsparser($filepath); 
      $data = $filedetails->getdata('object'); 
      //$data = $filedetails->getdata(); // array 
      //$filesize = $filedetails->getbykeyname('filesize'); 
      //$data = $filedetails->getdatalist(['filesize','pathinfo']); 
  } catch (Exception $e) { 
      $error = true; 
      $errormessage = $e->getMessage(); 
  } 
?> 
<!doctype html> 
<html lang="en"> 
  <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> 
 
    <title>File Details Parser</title> 
  </head> 
  <body> 
 
    <header> 
      <div class="navbar navbar-dark bg-dark box-shadow"> 
        <div class="container d-flex justify-content-between"> 
          <a href="#" class="navbar-brand d-flex align-items-center"> 
            <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" x="0px" y="0px" viewBox="0 0 496 496" style="enable-background:new 0 0 496 496;" xml:space="preserve"><path style="fill:#FAEFDE;" d="M440,424H32c-13.6,0-24-10.4-24-24V96c0-13.6,10.4-24,24-24h120l72,48h192c13.6,0,24,10.4,24,24V424z"/><path style="fill:#FFF7F0;" d="M32,72h128l56,56H8V96C8,82.4,18.4,72,32,72z"/><path style="fill:#CDA1A7;" d="M440,152h32c8.8,0,16,7.2,16,16v232c0,13.6-10.4,24-24,24h-24l0,0V152L440,152z"/><path style="fill:#EFD8BE;" d="M8,344h432l0,0v80l0,0H32c-13.6,0-24-10.4-24-24V344L8,344z"/><g><path style="fill:#F75F83;" d="M232,176h-48c-4.8,0-8,3.2-8,8s3.2,8,8,8h48c4.8,0,8-3.2,8-8S236.8,176,232,176z"/><path style="fill:#F75F83;" d="M72,192h80c4.8,0,8-3.2,8-8s-3.2-8-8-8H72c-4.8,0-8,3.2-8,8S67.2,192,72,192z"/><path style="fill:#F75F83;" d="M104,208H72c-4.8,0-8,3.2-8,8s3.2,8,8,8h32c4.8,0,8-3.2,8-8S108.8,208,104,208z"/><path style="fill:#F75F83;" d="M192,208h-56c-4.8,0-8,3.2-8,8s3.2,8,8,8h56c4.8,0,8-3.2,8-8S196.8,208,192,208z"/></g><g><path style="fill:#8D6C9F;" d="M408,336h-32c-4.8,0-8,3.2-8,8s3.2,8,8,8h32c4.8,0,8-3.2,8-8S412.8,336,408,336z"/><path style="fill:#8D6C9F;" d="M472,144h-24v-8c0-13.6-10.4-24-24-24H221.6c-6.4,0-12-2.4-16.8-7.2l-29.6-29.6C168,68,157.6,64,147.2,64H24C10.4,64,0,74.4,0,88v312c0,17.6,14.4,32,32,32h432c17.6,0,32-14.4,32-32V168C496,154.4,485.6,144,472,144z M32,416c-8.8,0-16-7.2-16-16v-48h328c4.8,0,8-3.2,8-8s-3.2-8-8-8H16V88c0-4.8,3.2-8,8-8h123.2c6.4,0,12,2.4,16.8,7.2l29.6,29.6c7.2,7.2,17.6,11.2,28,12H424c4.8,0,8,3.2,8,8v264c0,5.6,1.6,11.2,4.8,16H32V416z M480,400c0,8.8-7.2,16-16,16c-8.8-0.8-15.2-7.2-16-16V160h24c4.8,0,8,3.2,8,8V400z"/><path style="fill:#8D6C9F;" d="M40,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8s8-3.2,8-8v-16C48,371.2,44.8,368,40,368z"/><path style="fill:#8D6C9F;" d="M80,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8s8-3.2,8-8v-16C88,371.2,84.8,368,80,368z"/><path style="fill:#8D6C9F;" d="M120,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8s8-3.2,8-8v-16C128,371.2,124.8,368,120,368z"/><path style="fill:#8D6C9F;" d="M160,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8s8-3.2,8-8v-16C168,371.2,164.8,368,160,368z"/><path style="fill:#8D6C9F;" d="M200,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8s8-3.2,8-8v-16C208,371.2,204.8,368,200,368z"/><path style="fill:#8D6C9F;" d="M240,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8c4.8,0,8-3.2,8-8v-16C248,371.2,244.8,368,240,368z"/><path style="fill:#8D6C9F;" d="M280,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8s8-3.2,8-8v-16C288,371.2,284.8,368,280,368z"/><path style="fill:#8D6C9F;" d="M320,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8s8-3.2,8-8v-16C328,371.2,324.8,368,320,368z"/><path style="fill:#8D6C9F;" d="M360,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8s8-3.2,8-8v-16C368,371.2,364.8,368,360,368z"/><path style="fill:#8D6C9F;" d="M400,368c-4.8,0-8,3.2-8,8v16c0,4.8,3.2,8,8,8s8-3.2,8-8v-16C408,371.2,404.8,368,400,368z"/></g></svg> 
            <strong class="ml-3">File Details Parser</strong> 
          </a> 
        </div> 
      </div> 
    </header> 
 
    <main role="main"> 
 
      <div class="container"> 
 
        <?php if ($error) { 
                  echo '<div class="alert alert-danger mt-2" role="alert"> 
                      '.$errormessage.' 
                    </div>'; 
              } 
        ?> 
    <?php if (!$error) { ?> 
      <h2 class="mt-2">File Data</h2> 
      <table class="table mt-3"> 
        <thead class="thead-dark"> 
          <tr> 
            <th scope="col">key</th> 
            <th scope="col">data</th> 
          </tr> 
        </thead> 
        <tbody> 
          <?php foreach ($data as $key => $filedata) { 
            if(is_array($filedata)){ 
              echo '<tr> 
                <td>'.$key.'</td> 
                <td><table class="table"> 
                  <thead class="thead-dark"> 
                    <tr> 
                      <th scope="col">key</th> 
                      <th scope="col">data</th> 
                    </tr> 
                  </thead> 
                  <tbody>'; 
                    foreach ($filedata as $pathdata => $pathinfo) { 
                      echo '<tr> 
                        <td>'.$pathdata.'</td> 
                        <td>'.$pathinfo.'</td> 
                      </tr>'; 
                    } 
                echo'</tbody> 
                  </table>'; 
            }else{ 
              echo '<tr> 
                <td>'.$key.'</td> 
                <td>'.$filedata.'</td> 
              </tr>'; 
            } 
          } 
          ?> 
        </tbody> 
      </table> 
    <?php } ?> 
    <hr/> 
    <h3>methods</h3> 
    <div class="row mt-4"> 
        <div class="col-md-4"> 
          <div class="card" style="width: 18rem;"> 
            <div class="card-header"> 
              getbykeyname 
            </div> 
            <ul class="list-group list-group-flush"> 
              <li class="list-group-item">($keyname, $type='array')</li> 
              <li class="list-group-item">return string/array/object/bool</li> 
              <li class="list-group-item">get file details by key name</li> 
            </ul> 
          </div> 
        </div> 
        <div class="col-md-4"> 
          <div class="card" style="width: 18rem;"> 
            <div class="card-header"> 
              getdatalist 
            </div> 
            <ul class="list-group list-group-flush"> 
              <li class="list-group-item">($keylist, $type='array')</li> 
              <li class="list-group-item">return array/object</li> 
              <li class="list-group-item">only get $keylist keys from file details</li> 
            </ul> 
          </div> 
        </div> 
        <div class="col-md-4"> 
          <div class="card" style="width: 18rem;"> 
            <div class="card-header"> 
              getdata 
            </div> 
            <ul class="list-group list-group-flush"> 
              <li class="list-group-item">($type='array')</li> 
              <li class="list-group-item">return array/object</li> 
              <li class="list-group-item">get file data details as array or objectget file data details as array or object</li> 
            </ul> 
          </div> 
        </div> 
      </div> 
      <h3>available file details</h3> 
      <ul class="list-group mb-3"> 
        <li class="list-group-item">companyname</li> 
        <li class="list-group-item">filedescription</li> 
        <li class="list-group-item">fileversion</li> 
        <li class="list-group-item">internalname</li> 
        <li class="list-group-item">legalcopyright</li> 
        <li class="list-group-item">originalfilename</li> 
        <li class="list-group-item">productname</li> 
        <li class="list-group-item">productversion</li> 
        <li class="list-group-item">companyshortName</li> 
        <li class="list-group-item">productshortName</li> 
        <li class="list-group-item">lastchange</li> 
        <li class="list-group-item">legaltrademarks</li> 
        <li class="list-group-item">buildid</li> 
        <li class="list-group-item">updatesystemversion</li> 
        <li class="list-group-item">source control id</li> 
        <li class="list-group-item">filesize</li> 
        <li class="list-group-item">pathinfo</li> 
      </ul> 
      </div> 
 
    </main> 
 
 
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> 
  </body> 
</html> 
 
 |