ExBB Community » » PHP/Perl » Как получить конкретный параметр, отображаемый phpinfo

Страниц (1): [1]
 

1. NordWest - 6 сентября 2013 — 19:32 - перейти к сообщению
По команде phpinfo() вижу большой список параметров сервера.
Как получить конкретный параметр библиотеки, например этот
2. BON - 7 сентября 2013 — 08:09 - перейти к сообщению
SSH в помощь
3. NordWest - 7 сентября 2013 — 08:21 - перейти к сообщению
Это как? Как я понял SSH - это по сути протокол удаленного администрирования.
Мне же нужно средствами PHP получить версию SQLite.
4. 1Bot - 9 сентября 2013 — 08:13 - перейти к сообщению
NordWest пишет:
По команде phpinfo() вижу большой список параметров сервера.
Как получить конкретный параметр библиотеки, например этот


Как вариант, можно решить этот вопрос с помощью регулярных выражений: распарсить выдачу phpinfo() и выдать на выход массив его свойств, а уже в нем искать необходимый параметр и его значение:
CODE:
/* получить параметры выдачи функции phpinfo() в виде массива
На выходе в массиве $phpinfo_array получаются подмассивы, в которых [0] элемент – название параметра, [1] элемент – значение. Когда значений два (local value и master value), то соответственно это [1] и [2] элементы.

Примечание: в значениях phpinfo иногда бывает html-код – что-то вроде <i>no value</i> или ещё хуже. Имейте в виду и не забудьте корректно распарсить такие значения.
*/
function get_array_phpinfo() {
// запись вывода phpinfo в переменную $p
ob_start();
phpinfo();
$p = ob_get_contents();
ob_end_clean();
// распарсить строки
preg_match_all( '|<tr>(.+)</tr>|', $p, $m1 );
// распарсить колонки
$phpinfo_array = array();
foreach( $m1[ 0 ] as $m2 ) {
preg_match_all( '|<td(.+?)>(.+?)</td>|', $m2, $m3 );
$phpinfo_array[] = $m3[ 2 ];
}
return $phpinfo_array;
}


Функцию вызывать ТОЛЬКО из браузера (из командной строки формат выдачи функции phpinfo() другой).
5. NordWest - 9 сентября 2013 — 08:23 - перейти к сообщению
Спасибо, буду пробовать.
6. NordWest - 15 сентября 2013 — 06:41 - перейти к сообщению
Оказывается всё решается очень просто. Для получения версии SQLite нет нужды лезть в phpinfo(), этого кода вполне хватает
CODE:
if (function_exists ( 'sqlite_libversion' )) $vers = sqlite_libversion();
if (class_exists ('SQLite3')) {$varr = SQLite3::version(); $vers = $varr['versionString'];}
if ($vers) echo 'Версия SQLite = '.$vers.' <br />';

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0151]     [ ]