mirror of
https://github.com/fruithost/Panel.git
synced 2026-11-09 14:03:37 +09:00
195 lines
4.7 KiB
PHP
195 lines
4.7 KiB
PHP
<?php
|
|
namespace fruithost;
|
|
|
|
class PHP {
|
|
private $path = null;
|
|
private $content = null;
|
|
private $data = [];
|
|
|
|
public function setPath($path) {
|
|
$this->path = $path;
|
|
}
|
|
|
|
public function execute() {
|
|
$this->content = explode("\n", shell_exec(sprintf('echo "<?php phpinfo(); ?>" | (php --php-ini %s)', $this->path)));
|
|
}
|
|
|
|
public function parse() {
|
|
foreach($this->content as $data) {
|
|
$row = explode("=>", trim($data));
|
|
|
|
if(isset($row[1])) {
|
|
$this->data[trim($row[0])] = $row[1];
|
|
}
|
|
}
|
|
}
|
|
|
|
private function getByKey($key)
|
|
{
|
|
return $this->data[$key];
|
|
}
|
|
|
|
public function getSystem()
|
|
{
|
|
return $this->getByKey("System");
|
|
}
|
|
|
|
public function getBuildDate()
|
|
{
|
|
return $this->getByKey("Build Date");
|
|
}
|
|
|
|
public function getConfigureCommand()
|
|
{
|
|
$result = explode("' '", $this->getByKey("Configure Command"));
|
|
|
|
$lastIdx = (count($result) - 1);
|
|
unset($result[$lastIdx]);
|
|
|
|
$lastIdx = (count($result) - 1);
|
|
unset($result[$lastIdx]);
|
|
|
|
unset($result[0]);
|
|
|
|
return $result;
|
|
}
|
|
|
|
public function getServerApi()
|
|
{
|
|
return $this->getByKey("Server API");
|
|
}
|
|
|
|
public function getVirtualDirectorySupport()
|
|
{
|
|
return $this->getByKey("Virtual Directory Support");
|
|
}
|
|
|
|
public function getConfigurationFilePath()
|
|
{
|
|
return $this->getByKey("Configuration File (php.ini) Path");
|
|
}
|
|
|
|
public function getLoadedConfigurationFile()
|
|
{
|
|
return $this->getByKey("Loaded Configuration File");
|
|
}
|
|
|
|
public function getAdditionalIni()
|
|
{
|
|
return $this->getByKey("Scan this dir for additional .ini files");
|
|
}
|
|
|
|
public function getAdditionalIniParsed()
|
|
{
|
|
return $this->getByKey("Additional .ini files parsed");
|
|
}
|
|
|
|
public function getPhpApi()
|
|
{
|
|
return $this->getByKey("PHP API");
|
|
}
|
|
|
|
public function getPhpExtension()
|
|
{
|
|
return $this->getByKey("PHP Extension");
|
|
}
|
|
|
|
public function getZendExtension()
|
|
{
|
|
return $this->getByKey("Zend Extension");
|
|
}
|
|
|
|
public function getZendExtensionBuild()
|
|
{
|
|
return $this->getByKey("Zend Extension Build");
|
|
}
|
|
|
|
public function getPhpExtensionBuild()
|
|
{
|
|
return $this->getByKey("PHP Extension Build");
|
|
}
|
|
|
|
public function getDebugBuild()
|
|
{
|
|
return $this->getByKey("Debug Build");
|
|
}
|
|
|
|
public function getThreadSafety()
|
|
{
|
|
return $this->getByKey("Thread Safety");
|
|
}
|
|
|
|
public function getZendSignalHandling()
|
|
{
|
|
return $this->getByKey("Zend Signal Handling");
|
|
}
|
|
|
|
public function getZendMemoryManager()
|
|
{
|
|
return $this->getByKey("Zend Memory Manager");
|
|
}
|
|
|
|
public function getZendMultibyteSupport()
|
|
{
|
|
return $this->getByKey("Zend Multibyte Support");
|
|
}
|
|
|
|
public function getIPv6Support()
|
|
{
|
|
return $this->getByKey("IPv6 Support");
|
|
}
|
|
|
|
public function getDTraceSupport()
|
|
{
|
|
return $this->getByKey("DTrace Support");
|
|
}
|
|
|
|
public function getRegisteredPhpStreams()
|
|
{
|
|
return $this->getByKey("Registered PHP Streams");
|
|
}
|
|
|
|
public function getRegisteredStreamSocketTransports()
|
|
{
|
|
return $this->getByKey("Registered Stream Socket Transports");
|
|
}
|
|
|
|
public function getRegisteredStreamFilters()
|
|
{
|
|
return $this->getByKey("Registered Stream Filters");
|
|
}
|
|
|
|
public function getInfo() {
|
|
$this->execute();
|
|
$this->parse();
|
|
|
|
$result = [
|
|
"System" => $this->getSystem(),
|
|
"BuildDate" => $this->getBuildDate(),
|
|
"CMD" => $this->getConfigureCommand(),
|
|
"ServerAPI" => $this->getServerApi(),
|
|
"VirtualDirectorySupport" => $this->getVirtualDirectorySupport(),
|
|
"ConfigurationFilePath" => $this->getConfigurationFilePath(),
|
|
"LoadedConfigurationFile" => $this->getLoadedConfigurationFile(),
|
|
"AdditionalIni" => $this->getAdditionalIni(),
|
|
"AdditionalIniParsed" => $this->getAdditionalIniParsed(),
|
|
"API" => $this->getPhpApi(),
|
|
"Extension" => $this->getPhpExtension(),
|
|
"ZEND" => $this->getZendExtension(),
|
|
"ZENDBuild" => $this->getZendExtensionBuild(),
|
|
"DebugBuild" => $this->getDebugBuild(),
|
|
"ThreadSafety" => $this->getThreadSafety(),
|
|
"ZendSignalHandling" => $this->getZendSignalHandling(),
|
|
"ZendMemoryManager" => $this->getZendMemoryManager(),
|
|
"MultibyteSupport" => $this->getZendMultibyteSupport(),
|
|
"IPv6Support" => $this->getIPv6Support(),
|
|
"DTraceSupport" => $this->getDTraceSupport(),
|
|
"RegisteredPhpStreams" => $this->getRegisteredPhpStreams(),
|
|
"RegisteredStreamSocketTransports" => $this->getRegisteredStreamSocketTransports(),
|
|
"RegisteredStreamFilters" => $this->getRegisteredStreamFilters(),
|
|
];
|
|
|
|
return $result;
|
|
}
|
|
}
|
|
?>
|