{"id":48,"date":"2005-12-09T23:07:00","date_gmt":"2005-12-09T23:07:00","guid":{"rendered":"http:\/\/blog.trungson.com\/?p=48"},"modified":"2005-12-09T23:07:00","modified_gmt":"2005-12-09T23:07:00","slug":"parse-phpinfo-for-module-settings","status":"publish","type":"post","link":"http:\/\/blog.trungson.com\/?p=48","title":{"rendered":"Parse phpinfo() for module settings"},"content":{"rendered":"<p>This function parses the phpinfo output to get details about a PHP module. <\/p>\n<p><textarea name=\"code\" class=\"php\"><br \/>\n\/** parse php modules from phpinfo *\/<br \/>\nfunction parsePHPModules() {<br \/>\n ob_start();<br \/>\n phpinfo(INFO_MODULES);<br \/>\n $s = ob_get_contents();<br \/>\n ob_end_clean();<\/p>\n<p> $s = strip_tags($s,&#8217;<\/p>\n<h2>\n<th>\n<td>&#8216;);<br \/>\n $s = preg_replace(&#8216;\/<th[^>]*>([^<]+)<\\\/th>\/&#8217;,&#8221;<info>\\\\1<\/info>&#8220;,$s);<br \/>\n $s = preg_replace(&#8216;\/<td[^>]*>([^<]+)<\\\/td>\/&#8217;,&#8221;<info>\\\\1<\/info>&#8220;,$s);<br \/>\n $vTmp = preg_split(&#8216;\/(<\/p>\n<h2>[^<]+<\\\/h2>)\/&#8217;,$s,-1,PREG_SPLIT_DELIM_CAPTURE);<br \/>\n $vModules = array();<br \/>\n for ($i=1;$i<count($vTmp);$i++) {\n  if (preg_match('\/\n\n<h2>([^<]+)<\\\/h2>\/&#8217;,$vTmp[$i],$vMat)) {<br \/>\n   $vName = trim($vMat[1]);<br \/>\n   $vTmp2 = explode(&#8220;\\n&#8221;,$vTmp[$i+1]);<br \/>\n   foreach ($vTmp2 AS $vOne) {<br \/>\n    $vPat = &#8216;<info>([^<]+)<\\\/info>&#8216;;<br \/>\n    $vPat3 = &#8220;\/$vPat\\s*$vPat\\s*$vPat\/&#8221;;<br \/>\n    $vPat2 = &#8220;\/$vPat\\s*$vPat\/&#8221;;<br \/>\n    if (preg_match($vPat3,$vOne,$vMat)) { \/\/ 3cols<br \/>\n     $vModules[$vName][trim($vMat[1])] = array(trim($vMat[2]),trim($vMat[3]));<br \/>\n    } elseif (preg_match($vPat2,$vOne,$vMat)) { \/\/ 2cols<br \/>\n     $vModules[$vName][trim($vMat[1])] = trim($vMat[2]);<br \/>\n    }<br \/>\n   }<br \/>\n  }<br \/>\n }<br \/>\n return $vModules;<br \/>\n}<\/p>\n<p>\/** get a module setting *\/<br \/>\nfunction getModuleSetting($pModuleName,$pSetting) {<br \/>\n $vModules = $this->parsePHPModules();<br \/>\n return $vModules[$pModuleName][$pSetting];<br \/>\n}<\/p>\n<p>\/\/ Sample Usage<br \/>\ngetModuleSetting(&#8216;gd&#8217;,&#8217;GD Version&#8217;); \/\/ returns &#8220;bundled (2.0.28 compatible)&#8221;<br \/>\n<\/textarea><\/p>\n<p>Sample Output<\/p>\n<pre>\n[gd] => Array\n(\n  [GD Support] => enabled\n  [GD Version] => bundled (2.0.28 compatible)\n  [FreeType Support] => enabled\n  [FreeType Linkage] => with freetype\n  [FreeType Version] => 2.1.9\n  [T1Lib Support] => enabled\n  [GIF Read Support] => enabled\n  [GIF Create Support] => enabled\n  [JPG Support] => enabled\n  [PNG Support] => enabled\n  [WBMP Support] => enabled\n  [XBM Support] => enabled\n)\n\n[date] => Array (\n  [date\/time support] => enabled\n  [Timezone Database Version] => 2005.14\n  [Timezone Database] => internal\n  [Default timezone] => America\/Los_Angeles\n  [Directive] => Array (\n     [0] => Local Value\n     [1] => Master Value\n  )\n  [date.timezone] => Array (\n     [0] => no value\n     [1] => no value\n  )\n )\n\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>This function parses the phpinfo output to get details about a PHP module. \/** parse php modules from phpinfo *\/ function parsePHPModules() { ob_start(); phpinfo(INFO_MODULES); $s = ob_get_contents(); ob_end_clean(); $s = strip_tags($s,&#8217; &#8216;); $s = preg_replace(&#8216;\/]*>([^([^<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/posts\/48"}],"collection":[{"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=48"}],"version-history":[{"count":0,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/posts\/48\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.trungson.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=48"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=48"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}