[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Определение параметров окружения из скрипта.
LRCenter
Как можно из скрипта узнать:

-Версию PHP
-подключен ли GD2 и его версию
-сколько памяти выделенно
-подключен ли mod_rewrite
-подключен ли MbString
-Максимально возможный размер POST-данных
-состояние Register Globals и Magic Quotes
-подключен ли zlib

??

phpinfo() не предлагать, интересует определение конкретных параметров.



Спустя 4 минуты, 9 секунд (10.01.2011 - 18:39) Neic написал(а):
Версия PHP можно узнать через функцию phpinfo();
Цитата
состояние Register Globals и Magic Quotes

в скрипте думаю наврядли можно такое узнать.

Спустя 10 минут, 11 секунд (10.01.2011 - 18:49) LRCenter написал(а):
Нет, можно. Видел в какой-то цмске диагностический модуль: там можно было узнать все вышеперечисленное и даже больше.

Спустя 6 минут, 9 секунд (10.01.2011 - 18:55) waldicom написал(а):
ini_get()?
Там даже примеры есть, как все это сделать.

Спустя 15 часов, 29 минут, 25 секунд (11.01.2011 - 10:25) LRCenter написал(а):
waldicom, спасибо за совет.

Ну с этими все понятно:

#-сколько памяти выделенно
echo 'memory_limit = ' . ini_get('memory_limit') . "<br>";

#-Максимально возможный размер POST-данных
echo 'post_max_size = ' . ini_get('post_max_size') . "<br>";

#-состояние Register Globals и Magic Quotes
echo 'register_globals = ' . ini_get('register_globals') . "<br>";
echo 'magic_quotes_gpc = ' . ini_get('magic_quotes_gpc') . "<br>";



А с эти параметры как узнать?

#-Версию PHP
#-подключен ли GD2 и его версию
#-подключен ли mod_rewrite
#-подключен ли MbString
#-подключен ли zlib


4/9 :)

Спустя 10 минут, 3 секунды (11.01.2011 - 10:35) Michael написал(а):
Цитата
#-Версию PHP

phpversion();

function_exists() также может тебе помочь.


 ! 

М
Давайте своим темам осмысленные названия
Michael

Спустя 1 час, 41 минута, 9 секунд (11.01.2011 - 12:16) LRCenter написал(а):
Michael, спасибо, версию PHP узнал, а вот получается чтобы узнать с помощью function_exists(), например подключен ли GD2, нужно подстваить в функцию одну из функций этой библиотеки?

Как-то не изящно получается, да и версию библиотеки так не определишь.

А mod_rewrite как проверить, этож модуль апача, а не php?


Спустя 1 час, 14 минут, 39 секунд (11.01.2011 - 13:31) LRCenter написал(а):
Версию GD можно так узнать, но будет ли это работать если библиотеки вообще нет, ведь как я понимаю функция gd_info является ее частью?

$gd=gd_info();
echo 'Версия GD = ' . $gd['GD Version'] . "<br>";



Какие функции посоветуете для определения наличия библиотек?
Для GD - imagecreatetruecolor()
для mb_string - mb_ereg()
для zlib - gzopen()

Нормально подобрано?

А все-таки как определить есть ли на серве mod_rewrite ?

Спустя 2 минуты, 30 секунд (11.01.2011 - 13:33) linker написал(а):
extension_loaded() для проверки установленных расширений PHP. Например
if (!extension_loaded('gd'))
die('Библиотека GD не установлена');

Спустя 39 минут, 7 секунд (11.01.2011 - 14:12) LRCenter написал(а):
linker, спасибо все супер, только вот какое дело:



if (extension_loaded('zip')){echo "zlib подключен<br>";}
if (extension_loaded('zlib')){echo "zlib подключен<br>";}


TRUE, выдают оба условия, zip и zlib это одно и тоже?

Остается только определить mod_rewrite, но по всеобщему молчанию, на сей предмет, я подозреваю что это невозможно :(

Спустя 28 минут, 29 секунд (11.01.2011 - 14:41) LRCenter написал(а):
Итак всем спасибо, разобрался. Привожу полный код для страждущих ;)



#Диагностика сервера

#-Версию PHP

echo 'Версия php = ' . phpversion() . "<br>";

#-подключен ли GD2 и его версию
if (extension_loaded('gd'))
{$gd=gd_info();
echo 'Версия GD = ' . $gd['GD Version'] . "<br>";}

#-сколько памяти выделенно
echo 'memory_limit = ' . ini_get('memory_limit') . "<br>";

#-подключен ли mod_rewrite
if (array_search ("mod_rewrite", apache_get_modules())) {echo "mod_rewrite подключен<br>";}

#-подключен ли MbString
if (extension_loaded('mbstring')){echo "mb_string подключен<br>";}

#-Максимально возможный размер POST-данных
echo 'post_max_size = ' . ini_get('post_max_size') . "<br>";

#-состояние Register Globals и Magic Quotes
echo 'register_globals = ' . ini_get('register_globals') . "<br>";
echo 'magic_quotes_gpc = ' . ini_get('magic_quotes_gpc') . "<br>";


#-подключен ли zip
if (extension_loaded('zip')){echo "zip подключен<br>";}

Спустя 17 дней, 2 часа, 42 минуты (28.01.2011 - 17:23) LRCenter написал(а):
А как можно определить объем использованной скриптом памяти?

Спустя 20 минут, 11 секунд (28.01.2011 - 17:43) Invis1ble написал(а):
LRCenter
Цитата
А как можно определить объем использованной скриптом памяти?

попробуй memory_get_usage(true); и memory_get_peak_usage(true);

Спустя 28 минут, 25 секунд (28.01.2011 - 18:11) LRCenter написал(а):
Invis1ble
Спасибо, а чем отличаются эти функция, вторая показывает пиковое потребление памяти за время выполнения скрипта? А первая тогда какое?

memory_limit задает максимальный объем памяти на выполнение одного запуска скрипта? Или общий лимит памяти на весь сервер?

Спустя 15 минут, 54 секунды (28.01.2011 - 18:27) Invis1ble написал(а):
LRCenter
Цитата
Спасибо, а чем отличаются эти функция, вторая показывает пиковое потребление памяти за время выполнения скрипта? А первая тогда какое?

я чесно говоря никогда не пользовался этими функциями... Один раз попробовал для проверки ) Точно не помню, но вроде бы первая - потребление памяти в данный момент времени, вторая - пик потребления за время работы скрипта.
Цитата
memory_get_usage  (PHP 4 >= 4.3.2, PHP 5) Returns the amount of memory allocated to PHP
Параметры
bool
$real_usage
[optional]
Set this to true to get the real size of memory allocated from system. If not set or false only the memory used by emalloc() is reported.
Return Value
Тип: int  the memory amount in bytes.
Документация
http://php.net/manual/en/function.memory-get-usage.php

Цитата
memory_get_peak_usage  (PHP 5 >= 5.2.0) Returns the peak of memory allocated by PHP
Параметры
bool
$real_usage
[optional]
Set this to true to get the real size of memory allocated from system. If not set or false only the memory used by emalloc() is reported.
Return Value
Тип: int  the memory peak in bytes.
Документация
http://php.net/manual/en/function.memory-get-peak-usage.php


Цитата
memory_limit задает максимальный объем памяти на выполнение одного запуска скрипта? Или общий лимит памяти на весь сервер?

Да. насколько я понимаю, это - одно и тоже

Спустя 7 минут, 6 секунд (28.01.2011 - 18:34) LRCenter написал(а):
Цитата
Да. насколько я понимаю, это - одно и тоже


Т.е. я правильно понимаю что это вся общая память выделенная php сервером для выполнения скриптов, а не лимит на запуск отдельного скрипта(допустим лимит 10М, разом будут работать 10 скриптов на пределе лимита мамяти, т.е. в сумме 100)?

Спустя 6 минут, 21 секунда (28.01.2011 - 18:41) Invis1ble написал(а):
LRCenter
не знаю.... наверно лимит для одного скрипта, но не уверен.

Спустя 4 минуты, 15 секунд (28.01.2011 - 18:45) Dron19 написал(а):
Цитата (LRCenter @ 10.01.2011 - 15:49)
Нет, можно. Видел в какой-то цмске диагностический модуль: там можно было узнать все вышеперечисленное и даже больше.

magic_quotes_gpc и register_globals можно узнать с помощью функции ini_get

if(ini_get('magic_quotes_gpc') == 0) {
echo "Кавычки оффнуты";
}
else {
echo "Кавычки врублены на полную";
}

Спустя 7 минут, 1 секунда (28.01.2011 - 18:52) Dron19 написал(а):
ой, не заметил пост выше

Спустя 17 дней, 15 часов, 42 минуты, 58 секунд (18.02.2011 - 10:35) LRCenter написал(а):
А как можно поределить название и версию операционки, и ее тип unix-windows?
А как узнать название и версию веб-сервера?

Спустя 16 часов, 31 минута, 41 секунда (19.02.2011 - 03:07) kirik написал(а):
Цитата (LRCenter @ 18.02.2011 - 02:35)
А как можно поределить название и версию операционки, и ее тип unix-windows?
Цитата (LRCenter @ 18.02.2011 - 02:35)
А как узнать название и версию веб-сервера?

Наверное эта php_sapi_name() ближе всего.. Версию через костыль..
Вообще полистай это там инфо-функций на все случаи жизни smile.gif

Спустя 14 часов, 8 минут, 19 секунд (19.02.2011 - 17:15) LRCenter написал(а):
kirik
Если че серв можно определить так:


echo "Сервер:".$SERVER_SOFTWARE."<br>";

Спустя 12 часов, 47 минут, 57 секунд (20.02.2011 - 06:03) kirik написал(а):
Цитата (LRCenter @ 19.02.2011 - 09:15)
Если че серв можно определить так

Это какая-то левая переменная.. у меня например ничего не показывается (хотя php как модуль к apache стоит). Ещё учти вариант, что php может как cli работать, тогда никакой сервер нельзя определить..

Спустя 1 час, 9 минут, 16 секунд (20.02.2011 - 07:12) LRCenter написал(а):
kirik
Спасибо, учту!

Спустя 3 минуты, 49 секунд (20.02.2011 - 07:16) LRCenter написал(а):
Может опредиелить апач каким нибудь действием (признаком) которое может только он?


_____________
Меньше кода - меньше багов ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.