[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получить ВСЕ переменные окружения сервера
Monk(i
function f_list_Array($glob, $x=0)
{
$colors=array("#fff", "#eee", "#ddd", "#ccc", "#bbb", "#aaa", "#999", "#888", "#777", "#666", "#555", "#444", "#333", "#222", "#111", "#000",
"#7ff", "#7ee", "#7dd", "#7cc", "#7bb", "#7aa", "#799", "#788", "#777", "#766", "#755", "#744", "#733", "#722", "#711", "#700");

$arr = array(); reset($glob);
if(gettype($glob)=='array') while(list($var,$value) = each($glob)) $arr[] = array($var, $value);
if(gettype($glob)=='object') foreach($glob as $var => $value) $arr[] = array($var, $value);

if(!$x) for($i=0; $i<sizeof($arr); $i++)
echo "<div style='color:".$colors[7]."'>".$arr[$i][0]." == ".((gettype($arr[$i][1]) != object)?$arr[$i][1]:"ObJecT")."</div>\n";

for($i=0; $i<sizeof($arr); $i++)
{
echo "<table width='70000'><tr>".((!$x)?"":"<td width='".($x*10)."' style='background-color:".$colors[$x]."'> </td>")."<td><nobr>".$arr[$i][0]." => ";

if(gettype($arr[$i][1]) != object) echo ((strlen(trim($arr[$i][1]))!=0)?trim($arr[$i][1]):"null");
else echo "ObJecT";

echo "</nobr></td></tr></table>\n";

if((gettype($arr[$i][1])=='array' || gettype($arr[$i][1])=='object') && ($arr[$i][0]!="GLOBALS" || $x==0))
f_list_Array($glob[$arr[$i][0]], $x+1);
}

if($i==0) echo "<table width='70000'><tr><td width='".($x*10)."' style='background-color:".$colors[$x]."'></td><td>null</td></tr></table>\n";
}

f_list_Array($GLOBALS);


У кого вариант лучше ? Делитесь. Переменные окружения - вечный геморрой.



Спустя 12 часов, 8 минут, 23 секунды (18.05.2012 - 10:12) vagrand написал(а):
Отформатируйте ваш код

Спустя 4 часа, 11 минут, 57 секунд (18.05.2012 - 14:24) Monk(i написал(а):
Прям как на уроке чистописания в школе tongue.gif

Спустя 37 минут, 49 секунд (18.05.2012 - 15:02) inpost написал(а):
(gettype($arr[$i][1]) != object .
Если object - это константа, то почему бы её не продемонстрировать тоже?

Да и вообще, меньше кода и удобнее было бы с проверкой is_array

sizeof($arr); - при каждой инерции цикла у тебя будет пересчитываться длина массива, а вообще надо лишь 1 раз считать до начала цикла.

Да и стиль... я первый раз в жизни такой вижу, ужасно неудобный...

Атрибуты тегов надо писать в двойных кавычках

А вообще, лучший способ:
echo '<pre>'.print_r($GLOBALS).'</pre>';

Спустя 46 минут, 39 секунд (18.05.2012 - 15:48) Guest написал(а):
Ух, как идею изгадил ))) когда надо получить в джумле список всех переменных в определённой строке кода в определённом файле, то совершенно пофигу до цикла считается sizeof($arr) или во время, стиль - дело каждого, а с объектом лохонулся, да )))

Спустя 19 минут, 59 секунд (18.05.2012 - 16:08) Игорь_Vasinsky написал(а):
Делаем листинг читабильным ;)
echo '<pre>'.print_r($GLOBALS, 1).'</pre>';


_____________
$i - 20 лет на рынке циклов
Работа программиста: так, задача простая, за денёк справлюсь... хоп, хоп 2 дня работы - 1000 строк кода... не, как-то коряво получилось, и заказчик торопит, да и оплатил только 1 день работы... хоп хоп, ещё 4 дня работы, 600 строк кода... во, теперь надо тут свернуть функцию... заказчик адалел, послал бы, если бы знал... так, тут дырку прикрыть, тут... хоп, хоп 800 строк... вот теперь покатит... на, отвяжись, изверг... во, деньги! что бы сегодня поесть?
Быстрый ответ:

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