Mais bien sûr en mode normal, pas CLI. La sortie formée incluse entre autres HTML détruit la mise en page Web existante. P>
4 Réponses :
Il existe de bons exemples de convertir les informations en une matrice sur le site PHP.NET. p>
Voici le meilleur exemple . Vous pouvez faire boucle à travers ce tableau pour l'afficher de toutes les directions. P>
Ce fonction fait un excellent travail à convertir phpinfo en une matrice.
function parse_phpinfo() { ob_start(); phpinfo(INFO_MODULES); $s = ob_get_contents(); ob_end_clean(); $s = strip_tags($s, '<h2><th><td>'); $s = preg_replace('/<th[^>]*>([^<]+)<\/th>/', '<info>\1</info>', $s); $s = preg_replace('/<td[^>]*>([^<]+)<\/td>/', '<info>\1</info>', $s); $t = preg_split('/(<h2[^>]*>[^<]+<\/h2>)/', $s, -1, PREG_SPLIT_DELIM_CAPTURE); $r = array(); $count = count($t); $p1 = '<info>([^<]+)<\/info>'; $p2 = '/'.$p1.'\s*'.$p1.'\s*'.$p1.'/'; $p3 = '/'.$p1.'\s*'.$p1.'/'; for ($i = 1; $i < $count; $i++) { if (preg_match('/<h2[^>]*>([^<]+)<\/h2>/', $t[$i], $matchs)) { $name = trim($matchs[1]); $vals = explode("\n", $t[$i + 1]); 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 $r; }
Je viens de me faire créer la création du bibliothèque de compositeur pour ce but même. En ce moment, il peut analyser la sortie phpinfo () lorsqu'il est invoqué à partir de la ligne de commande, qui était mon cas d'utilisation.
au lieu d'utiliser strip_tags () ou n'importe quelle astuce intelligente, je viens de travailler mon chemin en arrière de tout ce que le Fonction d'origine a fait. P>
Vous pouvez utiliser la bibliothèque comme suit: p> Vous pouvez accéder aux touches dans les modules et ailleurs: p> ou < / p>
Si votre hôte vous permet d'utiliser exec () code>, vous pouvez le sortir de la même manière que sur CLI comme celui-ci:
<?php
exec('php -i', $data);
var_dump($data);
Vérifiez les commentaires sur PHP.NET/PHPINFO . Il y a quelques solutions à vos problèmes là-bas.