但當然在正常模式下不是CLI。包含在其他HTML中的格式化輸出會破壞現有的網頁佈局。有沒有辦法強制phpinfo()輸出沒有格式化的東西。就像在CLI模式中一樣?
7
A
回答
2
在PHP.net網站上有一些將信息轉換爲數組的好例子。
Here is the best example。你可以循環訪問該數組,以任何你喜歡的方式顯示它。
1
這個function在將phpinfo轉換成數組方面做得非常出色。
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;
}
1
剛剛完成創建composer library這個目的。現在,它可以從命令行調用時解析phpinfo()輸出,這是我的用例。
而不是使用strip_tags()或任何聰明的把戲,我只是從original function所做的一切事情中倒退回去。
你可以使用這個庫就像這樣:
<?php
include_once('vendor/autoload.php');
ob_start();
phpinfo();
$phpinfoAsString = ob_get_contents();
ob_get_clean();
$phpInfo = new OutCompute\PHPInfo\PHPInfo();
$phpInfo->setText($phpinfoAsString);
var_export($phpInfo->get());
?>
您可以模塊的訪問鍵和其他地方:
echo $phpInfoArray['Configuration']['bz2']['BZip2 Support']; # Will output 'Enabled' if enabled
或
echo $phpInfoArray['Thread Safety'] # Will output 'disabled' if disabled.
相關問題
- 1. Junit。有沒有辦法讓輸出格式化爲rspec輸出?
- 2. 有沒有辦法在github上強制README.txt文件的格式?
- 3. 有沒有像''的東西?
- 4. 有沒有辦法做一些像rails server --sandbox的東西?
- 5. 有沒有辦法在正則表達式中強制優先(perl樣式)
- 6. 有沒有像Python導出的東西?
- 7. 有沒有辦法用一個「模式」
- 8. 有沒有辦法在輸出到標籤時保留格式?
- 9. 有沒有像C#中的Bundle一樣的東西?
- 10. 有沒有在.NET Core日誌中格式化輸出格式的方法?
- 11. 有沒有辦法將BigQuery表格的模式導出爲JSON?
- 12. 有沒有像DV模擬器那樣的東西?
- 13. 有沒有像模仿這樣的東西?
- 14. 有沒有像HTML模板API那樣的東西?
- 15. 有沒有像jQuery.active angularjs中的東西?
- 16. 在Android中有沒有像Blackberry的SharedPreferences那樣的東西?
- 17. 有沒有辦法改變error_logger tty輸出格式
- 18. Grails在Rails中有沒有像acts_as_tree這樣的東西?
- 19. 有沒有辦法在flashdevelop中格式化動作?
- 20. 有沒有辦法在golang中格式化這個json?
- 21. 有沒有辦法在Excel中格式化文本爲HTML?
- 22. 有沒有辦法在FlashDevelop中重新格式化代碼?
- 23. 有沒有辦法檢查嚴格模式是否被強制執行?
- 24. 有沒有Perabyte這樣的東西?
- 25. 有沒有辦法在coffescript中注入散列,就像在Ruby中一樣?
- 26. 有沒有辦法以更「人性化」的格式讓JScience輸出?
- 27. Erlang有沒有像寶石一樣的東西?
- 28. 有沒有辦法在scala中選擇一個數組中的所有東西?
- 29. 有沒有辦法在單元格中搜索模式?
- 30. 有沒有辦法在Windows窗體中的WebBrowser中輸入東西?
檢查HTTP的評論:// php.net/phpinfo。那裏有一些解決你的問題的方法。 – alexn 2011-05-17 19:12:11