From: Nicolas Boisselier Date: Fri, 11 Oct 2024 10:17:43 +0000 (+0200) Subject: www/dbq/dbq.php X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=79364386c16e9f213024c237b9548b6aa3e5cf2e;p=nb.git www/dbq/dbq.php --- diff --git a/lib/php/page.php b/lib/php/page.php index 3b55d215..b5a05598 100644 --- a/lib/php/page.php +++ b/lib/php/page.php @@ -536,10 +536,19 @@ class Page extends nb { public static function phpinfo($text=null) { if ($text===null) $text = self::php_cli(); + ob_start(); phpinfo(INFO_ALL - INFO_LICENSE); $phpinfo = ob_get_contents(); ob_end_clean(); + # NB 11.10.24 if ($text) { + # NB 11.10.24 $datas = []; + # NB 11.10.24 $section = 'php'; + # NB 11.10.24 foreach (explode("\n",$phpinfo) as $line) { + # NB 11.10.24 debug($line); + # NB 11.10.24 } + # NB 11.10.24 return []; + # NB 11.10.24 } # Only tags without attrs $phpinfo = preg_replace('/(<\w+)\s+[^>]+/','$1',$phpinfo); @@ -556,7 +565,6 @@ class Page extends nb { # Pretty h2 $phpinfo = preg_replace_callback ('@(

(?:<[^>]+>)?)([^<]+)@',function($m){return $m[1].prettyText($m[2]);},$phpinfo); -# NB 21.12.16 if ($text) return $phpinfo; if (!preg_match_all('@()@s',$phpinfo,$m)) return ''; #bye($m[0]); if ($text) return strip_tags(join("\n",$m[0])); diff --git a/www/dbq/dbq.php b/www/dbq/dbq.php index 1384d113..9834a0de 100644 --- a/www/dbq/dbq.php +++ b/www/dbq/dbq.php @@ -1062,6 +1062,37 @@ EOF; } + public function todo_phpinfo_rows($text=null) { + #phpinfo(INFO_ALL - INFO_LICENSE); + ob_start(); phpinfo(INFO_MODULES); $s = ob_get_contents(); ob_end_clean(); + $s = strip_tags($s, '

'); + $s = preg_replace('/]*>([^<]+)<\/th>/', '\1', $s); + $s = preg_replace('/]*>([^<]+)<\/td>/', '\1', $s); + $t = preg_split('/(]*>[^<]+<\/h2>)/', $s, -1, PREG_SPLIT_DELIM_CAPTURE); + $r = array(); $count = count($t); + $p1 = '([^<]+)<\/info>'; + $p2 = '/'.$p1.'\s*'.$p1.'\s*'.$p1.'/'; + $p3 = '/'.$p1.'\s*'.$p1.'/'; + $lines = []; + for ($i = 1; $i < $count; $i++) { + if (preg_match('/]*>([^<]+)<\/h2>/', $t[$i], $matchs)) { + $name = trim($matchs[1]); + #$vals = explode("\n", $t[$i + 1]); + $vals = $t[$i + 1]; + $lines [] = "TODO\n$name\t$vals"; + foreach ($vals AS $val) { + if (preg_match($p2, $val, $matchs)) { // 3cols + $r[$name][trim($matchs[1])] = array(trim($matchs[2]), trim($matchs[3])); + } elseif (preg_match($p3, $val, $matchs)) { // 2cols + $r[$name][trim($matchs[1])] = trim($matchs[2]); + } + } + } + } + return $lines; + return $r; + } + public function phpinfo_rows() { $txt = $this->is_html ? 0 : 1; @@ -1286,6 +1317,7 @@ EOF; } elseif ($action == 'phpinfo') { $this->deniedUnless($this->perm >= self::ADMIN); + #phpinfo(); $this->rows_table($action,$this->phpinfo_rows()); #$this->page(['phpinfo'=>$this->page->phpinfo(true)]); #$this->page($this->page->phpinfo());