WordPress.org

Plugin Directory

Changeset 522298


Ignore:
Timestamp:
03/22/12 16:59:38 (2 years ago)
Author:
askapache
Message:

Improved Functions module, improved default options, fix for page url, fix for debug_plugin mod

Location:
askapache-debug-viewer/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • askapache-debug-viewer/trunk/askapache-debug-viewer.php

    r522076 r522298  
    66 * Description: Displays Advanced Debugging Output 
    77 * Author: askapache,cduke250 
    8  * Version: 2.3 
    9  * Updated: 3/22/2012 - 1:34 AM 
    10  * Requires at least: 3.0 
    11  * Tested up to: 3.4-alpha-20244 
     8 * Version: 2.3.1 
     9 * Updated: 3/22/2012 - 11:03 AM 
     10 * Requires at least: 2.9 
     11 * Tested up to: 3.4-alpha-19719 
    1212 * Tags: debug, debugging, error, errors, problems, support, admin, programmer, developer, plugin, development, information, stats, logs, queries, htaccess, password, error, support, askapache 
    1313 * Contributors: askapache,cduke250 
     
    3737 * along with this program. If not, see <http://www.gnu.org/licenses/>. 
    3838 */ 
    39   
    40   
    41   
    4239/* IS? FUNCTINONS 
    4340* isset() - Determine if a variable is set and is not NULL (isset() will return FALSE if testing a variable that has been set to NULL) 
     
    427424 
    428425//function isc_lock($ip=null){ return (bool)( ((null === $ip) ? $_SERVER['REMOTE_ADDR'] : $ip) === ISC_IP); } 
     426function sqpt_error_log($msg=''){ error_log($msg); return; } 
    429427 
    430428 
     
    437435   switch($f) 
    438436   { 
    439         case 'sqpt_error_log': 
    440             function sqpt_error_log($msg='') 
    441             { 
    442                 error_log($msg); return; 
    443             }; 
    444         break; 
    445          
    446         case 'get_include_path': 
    447             function get_include_path() 
    448             { 
    449                 return ini_get('include_path'); 
    450             }; 
    451         break; 
    452          
    453         case 'set_include_path': 
    454             function set_include_path($new_include_path) 
    455             { 
    456                 return ini_set('include_path', $new_include_path); 
    457             }; 
    458         break; 
    459          
    460         case 'restore_include_path': 
    461             function restore_include_path() 
    462             { 
    463                 return ini_restore('include_path'); 
    464             }; 
    465         break; 
    466          
    467         case 'inet_ntop': 
    468             function inet_ntop($in_addr) 
    469             { 
    470                 switch (strlen($in_addr)) { 
    471                 case 4: 
    472                     list(,$r) = unpack('N', $in_addr); 
    473                     return long2ip($r); 
    474                 case 16: 
    475                     $r = substr(chunk_split(bin2hex($in_addr), 4, ':'), 0, -1); 
    476                     $r = preg_replace( 
    477                  array('/(?::?\b0+\b:?){2,}/', '/\b0+([^0])/e'), 
    478                  array('::', '(int)"$1"?"$1":"0$1"'), 
    479                  $r); 
    480                     return $r; 
    481                 } 
    482          
    483                 return false; 
    484             }; 
    485         break; 
    486          
    487         case 'inet_pton': 
    488             function inet_pton($address) 
    489             { 
    490                 $r = ip2long($address); 
    491                 if ($r !== false && $r != -1)  return pack('N', $r); 
    492          
    493                 $delim_count = substr_count($address, ':'); 
    494                 if ($delim_count < 1 || $delim_count > 7)  return false; 
    495          
    496                 $r = explode(':', $address); 
    497                 $rcount = count($r); 
    498                 if (($doub = array_search('', $r, 1)) !== false) { 
    499                  $length = (!$doub || $doub == $rcount - 1 ? 2 : 1); 
    500                  array_splice($r, $doub, $length, array_fill(0, 8 + $length - $rcount, 0)); 
    501                 } 
    502          
    503                 $r = array_map('hexdec', $r); 
    504                 array_unshift($r, 'n*'); 
    505                 $r = call_user_func_array('pack', $r); 
    506          
    507                 return $r; 
    508             }; 
    509         break; 
    510          
    511         case 'php_ini_loaded_file': 
    512             function php_ini_loaded_file() 
    513             { 
    514                 // Get the location of php.ini 
    515                 ob_start(); 
    516                 phpinfo(INFO_GENERAL); 
    517                 $info = ob_get_contents(); 
    518                 ob_clean(); 
    519                 $info = explode("\n", $info); 
    520                 $line = array_values(preg_grep('#php\.ini#', $info)); 
    521          
    522                 // Plain vs HTML output 
    523                 if (substr($line[0], 0, 4) === '<tr>') { 
    524                     list (, $value) = explode('<td class="v">', $line[0], 2); 
    525                     $inifile = trim(strip_tags($value)); 
    526                 } else { 
    527                     list (, $value) = explode(' => ', $line[0], 2); 
    528                     $inifile = trim($value); 
    529                 } 
    530          
    531                 // Check the file actually exists 
    532                 if (!file_exists($inifile))  return false; 
    533             }; 
    534         break; 
    535          
    536         case 'ini_get_all': 
    537             function ini_get_all($extension=null)  
    538             {   
    539                 // Sanity check 
    540                 if ($extension !== null && !is_scalar($extension)) { 
    541                     user_error('ini_get_all() expects parameter 1 to be string, ' . gettype($extension) . ' given', E_USER_WARNING); 
    542                     return false; 
    543                 } 
    544          
    545                 // Get the location of php.ini 
    546                 ob_start(); 
    547                 phpinfo(INFO_GENERAL); 
    548                 $info = ob_get_contents(); 
    549                 ob_clean(); 
    550                 $info = explode("\n", $info); 
    551                 $line = array_values(preg_grep('#php\.ini#', $info)); 
    552          
    553                 // Plain vs HTML output 
    554                 if (substr($line[0], 0, 4) === '<tr>') { 
    555                     list (, $value) = explode('<td class="v">', $line[0], 2); 
    556                     $inifile = trim(strip_tags($value)); 
    557                 } else { 
    558                     list (, $value) = explode(' => ', $line[0], 2); 
    559                     $inifile = trim($value); 
    560                 } 
    561          
    562                 // Check the file actually exists 
    563                 if (!file_exists($inifile)) { 
    564                     user_error('ini_get_all() Unable to find php.ini', E_USER_WARNING); 
    565                     return false; 
    566                 } 
    567          
    568                 // Check the file is readable 
    569                 if (!is_readable($inifile)) { 
    570                     user_error('ini_get_all() Unable to open php.ini', E_USER_WARNING); 
    571                     return false; 
    572                 } 
    573          
    574                 // Parse the ini 
    575                 if ($extension !== null)  
    576                 { 
    577                     $ini_all = parse_ini_file($inifile, true); 
    578          
    579                     // Lowercase extension keys 
    580                     foreach ($ini_all as $key => $value) $ini_arr[strtolower($key)] = $value; 
    581          
    582                     // Check the extension exists 
    583                     if (isset($ini_arr[$extension])) $ini = $ini_arr[$extension]; 
    584                     else { 
    585                  user_error("ini_get_all() Unable to find extension '$extension'",E_USER_WARNING); 
    586                  return false; 
    587                     } 
    588                 } else { 
    589                     $ini = parse_ini_file($inifile); 
    590                 } 
    591          
    592                 // Order 
    593                 $ini_lc = array_map('strtolower', array_keys($ini)); 
    594                 array_multisort($ini_lc, SORT_ASC, SORT_STRING, $ini); 
    595          
    596                 // Format 
    597                 $info = array(); 
    598                 foreach ($ini as $key => $value) $info[$key] = array( 'global_value'  => $value, 'local_value'   => ini_get($key), 'access'        => -1); 
    599                 return $info; 
    600             }; 
    601         break; 
    602          
    603         case 'is_a': 
    604             function is_a($object, $class)  
    605             { 
    606                 if (!is_object($object)) return false;           
    607                 if (strtolower(get_class($object)) == strtolower($class))  return true; 
    608                 else return is_subclass_of($object, $class); 
    609             }; 
    610         break; 
    611          
    612         case 'is_callable': 
    613             function is_callable($var, $syntax_only = false) 
    614             { 
    615                 if (!is_string($var) && !(is_array($var) && count($var) == 2 && isset($var[0], $var[1]) && is_string($var[1]) && (is_string($var[0]) || is_object($var[0])))) return false; 
    616                 if ($syntax_only) return true; 
    617                 if (is_string($var)) return function_exists($var); 
    618                 else if (is_array($var))  
    619                 { 
    620                     if (is_string($var[0])) { 
    621                  $methods = get_class_methods($var[0]); 
    622                  $method = strtolower($var[1]); 
    623                  if ($methods) { 
    624                      foreach ($methods as $classMethod) { 
    625                   if (strtolower($classMethod) == $method) return true; 
    626                      } 
    627                  } 
    628                     } else return method_exists($var[0], $var[1]); 
    629                 } 
    630                 return false; 
    631             }; 
    632         break; 
    633          
    634         case 'mhash':    
    635                 !defined('MHASH_CRC32') && define('MHASH_CRC32', 0); 
    636                 !defined('MHASH_MD5') && define('MHASH_MD5', 1); 
    637                 !defined('MHASH_SHA1') && define('MHASH_SHA1', 2); 
    638                 !defined('MHASH_HAVAL256') && define('MHASH_HAVAL256', 3); 
    639                 !defined('MHASH_RIPEMD160') && define('MHASH_RIPEMD160', 5); 
    640                 !defined('MHASH_TIGER') && define('MHASH_TIGER', 7); 
    641                 !defined('MHASH_GOST') && define('MHASH_GOST', 8); 
    642                 !defined('MHASH_CRC32B') && define('MHASH_CRC32B', 9); 
    643                 !defined('MHASH_HAVAL192') && define('MHASH_HAVAL192', 11); 
    644                 !defined('MHASH_HAVAL160') && define('MHASH_HAVAL160', 12); 
    645                 !defined('MHASH_HAVAL128') && define('MHASH_HAVAL128', 13); 
    646                 !defined('MHASH_TIGER128') && define('MHASH_TIGER128', 14); 
    647                 !defined('MHASH_TIGER160') && define('MHASH_TIGER160', 15); 
    648                 !defined('MHASH_MD4') && define('MHASH_MD4', 16); 
    649                 !defined('MHASH_SHA256') && define('MHASH_SHA256', 17); 
    650                 !defined('MHASH_ADLER32') && define('MHASH_ADLER32', 18); 
    651                 function mhash($hashtype, $data, $key = '') 
    652                 { 
    653                     switch ($hashtype)  
    654                     { 
    655                         case MHASH_MD5: 
    656                             $key = str_pad((strlen($key) > 64 ? pack("H*", md5($key)) : $key), 64, chr(0x00)); 
    657                             $k_opad = $key ^ (str_pad('', 64, chr(0x5c))); 
    658                             $k_ipad = $key ^ (str_pad('', 64, chr(0x36))); 
    659                             return pack("H*", md5($k_opad . pack("H*", md5($k_ipad .  $data)))); 
    660                         default: 
    661                             return false; 
    662                         break; 
    663                     } 
    664                 }; 
    665         break; 
    666          
    667         case 'get_current_screen': 
    668             function get_current_screen() 
    669             { 
    670                 global $current_screen; return (( !isset($current_screen) ) ? null : $current_screen); 
    671             }; 
    672         break; 
    673          
    674         case 'sys_get_temp_dir': 
    675             function sys_get_temp_dir() 
    676             { 
    677                 if (!empty($_ENV['TMP'])) return realpath($_ENV['TMP']); 
    678                 if (!empty($_ENV['TMPDIR']))  return realpath( $_ENV['TMPDIR']); 
    679                 if (!empty($_ENV['TEMP'])) return realpath( $_ENV['TEMP']); 
    680          
    681                 $tempfile = tempnam(uniqid(rand(),TRUE),''); 
    682                 if (file_exists($tempfile)) { 
    683                     unlink($tempfile); 
    684                     return realpath(dirname($tempfile)); 
    685                 } 
    686             }; 
    687         break; 
    688          
    689         case 'time_sleep_until': 
    690             function time_sleep_until($timestamp) 
    691             { 
    692                 list($usec, $sec) = explode(' ', microtime()); 
    693                 $now = $sec + $usec; 
    694                 if ($timestamp <= $now) { 
    695                     user_error('Specified timestamp is in the past', E_USER_WARNING); 
    696                     return false; 
    697                 } 
    698          
    699                 $diff = $timestamp - $now; 
    700                 usleep($diff * 1000000); 
    701                 return true; 
    702             }; 
    703         break; 
    704          
    705         case 'is_scalar': 
    706             function is_scalar($val) 
    707             { 
    708                 return (is_bool($val) || is_int($val) || is_float($val) || is_string($val)); 
    709             }; 
    710         break; 
    711          
    712         case 'md5_file': 
    713             function md5_file($filename, $raw_output = false) 
    714             { 
    715                 // Sanity check 
    716                 if (!is_scalar($filename)) { 
    717                     user_error('md5_file() expects parameter 1 to be string, ' . gettype($filename) . ' given', E_USER_WARNING); 
    718                     return; 
    719                 } 
    720          
    721                 if (!is_scalar($raw_output)) { 
    722                     user_error('md5_file() expects parameter 2 to be bool, ' . gettype($raw_output) . ' given', E_USER_WARNING); 
    723                     return; 
    724                 } 
    725          
    726                 if (!file_exists($filename)) { 
    727                     user_error('md5_file() Unable to open file', E_USER_WARNING); 
    728                     return false; 
    729                 } 
    730          
    731                 // Read the file 
    732                 if (false === $fh = fopen($filename, 'rb')) { 
    733                     user_error('md5_file() failed to open stream: No such file or directory', E_USER_WARNING); 
    734                     return false; 
    735                 } 
    736          
    737                 clearstatcache(); 
    738                 if ($fsize = @filesize($filename)) { 
    739                     $data = fread($fh, $fsize); 
    740                 } else { 
    741                     $data = ''; 
    742                     while (!feof($fh)) $data .= fread($fh, 8192); 
    743                 } 
    744          
    745                 fclose($fh); 
    746          
    747                 // Return 
    748                 $data = md5($data); 
    749                 if ($raw_output === true) $data = pack('H*', $data); 
    750          
    751                 return $data; 
    752             }; 
    753         break; 
    754          
    755         case 'microtime': 
    756             function microtime($get_as_float = false) 
    757             { 
    758                 if (!function_exists('gettimeofday')) 
    759                 { 
    760                     $time = time(); 
    761                     return $get_as_float ? ($time * 1000000.0) : '0.00000000 ' . $time; 
    762                 }  
    763                  
    764                 $gtod = gettimeofday(); 
    765                 $usec = $gtod['usec'] / 1000000.0; 
    766                 return $get_as_float ? (float) ($gtod['sec'] + $usec) : (sprintf('%.8f ', $usec) . $gtod['sec']); 
    767             }; 
    768         break; 
    769          
    770         case 'mkdir': 
    771             function mkdir($pathname, $mode = 0777, $recursive = true, $context = null)  
    772             { 
    773                 if (version_compare(PHP_VERSION, '5.0.0', 'gte'))  return (func_num_args() > 3) ? mkdir($pathname, $mode, $recursive, $context) : mkdir($pathname, $mode, $recursive); 
    774                  
    775                 if (!strlen($pathname)) { 
    776                     user_error('No such file or directory', E_USER_WARNING); 
    777                     return false; 
    778                 } 
    779                  
    780                 if (is_dir($pathname)) 
    781                 { 
    782                     if (func_num_args() == 5) return true; 
    783                     user_error('File exists', E_USER_WARNING); 
    784                     return false; 
    785                 } 
    786                  
    787                 $parent_is_dir = mkdir(dirname($pathname), $mode, $recursive, null, 0); 
    788                 if ($parent_is_dir) return mkdir($pathname, $mode); 
    789                 user_error('No such file or directory', E_USER_WARNING); 
    790                 return false; 
    791             }; 
    792         break; 
    793          
    794         case 'ob_clean': 
    795             function ob_clean() 
    796             { 
    797                 if (@ob_end_clean()) return ob_start();      
    798                 user_error("ob_clean() failed to delete buffer. No buffer to delete.", E_USER_NOTICE); 
    799                 return false; 
    800             }; 
    801         break; 
    802          
    803         case 'ob_flush': 
    804             function ob_flush() 
    805             { 
    806                 if (@ob_end_flush()) return ob_start(); 
    807                 user_error("ob_flush() Failed to flush buffer. No buffer to flush.", E_USER_NOTICE); 
    808                 return false; 
    809             }; 
    810         break; 
    811          
    812         case 'ob_get_clean': 
    813             function ob_get_clean() 
    814             { 
    815                 $contents = ob_get_contents(); 
    816                 if ($contents !== false) ob_end_clean(); 
    817                 return $contents; 
    818             }; 
    819         break; 
    820          
    821         case 'ob_get_flush': 
    822             function ob_get_flush() 
    823             { 
    824                 $contents = ob_get_contents(); 
    825                 if ($contents !== false) ob_end_flush(); 
    826                 return $contents; 
    827             }; 
    828         break; 
    829          
    830         case 'pathinfo':  
    831             !defined('PATHINFO_FILENAME') && define('PATHINFO_FILENAME', 8); 
    832             function pathinfo($path = false, $options = false) 
    833             { 
    834                 // Sanity check 
    835                 if (!is_scalar($path)) { 
    836                     user_error('pathinfo() expects parameter 1 to be string, ' . gettype($path) . ' given', E_USER_WARNING); 
    837                     return; 
    838                 } 
    839                 if (version_compare(PHP_VERSION, '5.2.0', 'ge')) return pathinfo($path, $options); 
    840                 if ($options & PATHINFO_FILENAME) { 
    841                     if (strpos($path, '.') !== false) $filename = substr($path, 0, strrpos($path, '.')); 
    842                     if ($options === PATHINFO_FILENAME) return $filename; 
    843                     $pathinfo=pathinfo($path, $options); 
    844                     $pathinfo['filename']=$filename; 
    845                     return $pathinfo; 
    846                 } 
    847                 return pathinfo($path, $options); 
    848             }; 
    849         break; 
    850          
    851         case 'scandir': 
    852             function scandir($directory, $sorting_order = 0) 
    853             { 
    854                 if (!is_string($directory)) { 
    855                     user_error('scandir() expects parameter 1 to be string, ' . gettype($directory) . ' given', E_USER_WARNING); 
    856                     return; 
    857                 } 
    858          
    859                 if (!is_int($sorting_order) && !is_bool($sorting_order)) { 
    860                     user_error('scandir() expects parameter 2 to be long, ' . gettype($sorting_order) . ' given', E_USER_WARNING); 
    861                     return; 
    862                 } 
    863          
    864                 if (!is_dir($directory) || (false === $fh = @opendir($directory))) { 
    865                     user_error('scandir() failed to open dir: Invalid argument', E_USER_WARNING); 
    866                     return false; 
    867                 } 
    868          
    869                 $files = array (); 
    870                 while (false !== ($filename = readdir($fh))) $files[] = $filename; 
    871                 closedir($fh); 
    872          
    873                 if ($sorting_order == 1) rsort($files); 
    874                 else sort($files); 
    875          
    876                 return $files; 
    877             }; 
    878         break; 
    879          
    880         case 'var_export': 
    881             function var_export($var, $return = false, $level = 0, $inObject = false) 
    882             { 
    883                 $indent      = '  '; 
    884                 $doublearrow = ' => '; 
    885                 $lineend     = ",\n"; 
    886                 $stringdelim = '\''; 
    887                 $newline     = "\n"; 
    888                 $find        = array(null, '\\', '\''); 
    889                 $replace     = array('NULL', '\\\\', '\\\''); 
    890                 $out         = ''; 
    891                  
    892                 // Indent 
    893                 $level++; 
    894                 for ($i = 1, $previndent = ''; $i < $level; $i++) $previndent .= $indent; 
    895                 $varType = gettype($var); 
    896                  
    897                 // Handle object indentation oddity 
    898                 if ($inObject && $varType != 'object') $previndent = substr($previndent, 0, -1);         
    899                  
    900                 // Handle each type 
    901                 switch ($varType) 
    902                 { 
    903                     case 'array': 
    904                         if ($inObject) $out .= $newline . $previndent; 
    905                         $out .= 'array (' . $newline; 
    906                          
    907                         foreach ($var as $key => $value) { 
    908                             if (is_string($key)) { 
    909                                 // Make key safe 
    910                                 $key = str_replace($find, $replace, $key); 
    911                                 $key = $stringdelim . $key . $stringdelim; 
    912                             } 
    913                              
    914                             // Value 
    915                             if (is_array($value)) { 
    916                                 $export = var_export($value, true, $level); 
    917                                 $value = $newline . $previndent . $indent . $export; 
    918                             } else  $value = var_export($value, true, $level); 
    919                              
    920                             // Piece line together 
    921                             $out .= $previndent . $indent . $key . $doublearrow . $value . $lineend; 
    922                         } 
    923                          
    924                         // End string 
    925                         $out .= $previndent . ')'; 
    926                     break; 
    927                      
    928                     case 'string': 
    929                         // Make the string safe 
    930                         for ($i = 0, $c = count($find); $i < $c; $i++) $var = str_replace($find[$i], $replace[$i], $var); 
    931                         $out = $stringdelim . $var . $stringdelim; 
    932                     break; 
    933                      
    934                     case 'integer': 
    935                     case 'double': 
    936                         $out = (string) $var; 
    937                     break; 
    938                      
    939                     case 'boolean': 
    940                         $out = $var ? 'true' : 'false'; 
    941                     break; 
    942                      
    943                     case 'NULL': 
    944                     case 'resource': 
    945                         $out = 'NULL'; 
    946                     break; 
    947                      
    948                     case 'object': 
    949                         // Start the object export 
    950                         $out = $newline . $previndent; 
    951                         $out .= get_class($var) . '::__set_state(array(' . $newline; 
    952                         // Export the object vars 
    953                         foreach(get_object_vars($var) as $key => $value) $out .= $previndent . $indent . ' ' . $stringdelim . $key . $stringdelim . $doublearrow . var_export($value, true, $level, true) . $lineend; 
    954                         $out .= $previndent . '))'; 
    955                     break; 
    956                 } 
    957                  
    958                 // Method of output 
    959                 if ($return === true) return $out; 
    960                 else echo $out; 
    961                  
    962             }; 
    963         break; 
    964          
    965         case 'array_walk_recursive': 
    966             function array_walk_recursive(&$input, $funcname) 
    967             { 
    968                 if (!is_callable($funcname)) 
    969                 { 
    970                     if (is_array($funcname)) $funcname = $funcname[0] . '::' . $funcname[1]; 
    971                     user_error('array_walk_recursive() Not a valid callback ' . $funcname, E_USER_WARNING); 
    972                     return; 
    973                 } 
    974                  
    975                 if (!is_array($input)) 
    976                 { 
    977                     user_error('array_walk_recursive() The argument should be an array', E_USER_WARNING); 
    978                     return; 
    979                 } 
    980                  
    981                 $args = func_get_args(); 
    982                  
    983                 foreach ($input as $key => $item) 
    984                 { 
    985                     $callArgs = $args; 
    986                     if (is_array($item)) { 
    987                         $thisCall = 'array_walk_recursive'; 
    988                         $callArgs[1] = $funcname; 
    989                     } else { 
    990                         $thisCall = $funcname; 
    991                         $callArgs[1] = $key; 
    992                     } 
    993                     $callArgs[0] = &$input[$key]; 
    994                     call_user_func_array($thisCall, $callArgs); 
    995                 } 
    996             }; 
    997         break; 
    998                  
    999     } 
     437   case 'get_include_path': function get_include_path(){ return ini_get('include_path'); }; break; 
     438   case 'set_include_path': function set_include_path($new_include_path){ return ini_set('include_path', $new_include_path); }; break; 
     439   case 'restore_include_path': function restore_include_path(){ return ini_restore('include_path'); }; break; 
     440   case 'inet_ntop':    function inet_ntop($in_addr) 
     441   { 
     442      switch (strlen($in_addr)) { 
     443      case 4: 
     444     list(,$r) = unpack('N', $in_addr); 
     445     return long2ip($r); 
     446 
     447      case 16: 
     448     $r = substr(chunk_split(bin2hex($in_addr), 4, ':'), 0, -1); 
     449     $r = preg_replace( 
     450        array('/(?::?\b0+\b:?){2,}/', '/\b0+([^0])/e'), 
     451        array('::', '(int)"$1"?"$1":"0$1"'), 
     452        $r); 
     453     return $r; 
     454      } 
     455 
     456      return false; 
     457   } 
     458   break; 
     459   case 'inet_pton': function inet_pton($address) 
     460   { 
     461      $r = ip2long($address); 
     462      if ($r !== false && $r != -1)  return pack('N', $r); 
     463 
     464      $delim_count = substr_count($address, ':'); 
     465      if ($delim_count < 1 || $delim_count > 7)  return false; 
     466 
     467      $r = explode(':', $address); 
     468      $rcount = count($r); 
     469      if (($doub = array_search('', $r, 1)) !== false) { 
     470     $length = (!$doub || $doub == $rcount - 1 ? 2 : 1); 
     471     array_splice($r, $doub, $length, array_fill(0, 8 + $length - $rcount, 0)); 
     472      } 
     473 
     474      $r = array_map('hexdec', $r); 
     475      array_unshift($r, 'n*'); 
     476      $r = call_user_func_array('pack', $r); 
     477 
     478      return $r; 
     479   } 
     480   break; 
     481   case 'php_ini_loaded_file': function php_ini_loaded_file() 
     482   { 
     483      // Get the location of php.ini 
     484      ob_start(); 
     485      phpinfo(INFO_GENERAL); 
     486      $info = ob_get_contents(); 
     487      ob_clean(); 
     488      $info = explode("\n", $info); 
     489      $line = array_values(preg_grep('#php\.ini#', $info)); 
     490 
     491      // Plain vs HTML output 
     492      if (substr($line[0], 0, 4) === '<tr>') { 
     493     list (, $value) = explode('<td class="v">', $line[0], 2); 
     494     $inifile = trim(strip_tags($value)); 
     495      } else { 
     496     list (, $value) = explode(' => ', $line[0], 2); 
     497     $inifile = trim($value); 
     498      } 
     499 
     500      // Check the file actually exists 
     501      if (!file_exists($inifile)) { 
     502     return false; 
     503      } 
     504   } 
     505   break; 
     506   case 'ini_get_all': function ini_get_all($extension=null)  
     507   {   
     508      // Sanity check 
     509      if ($extension !== null && !is_scalar($extension)) { 
     510     user_error('ini_get_all() expects parameter 1 to be string, ' . gettype($extension) . ' given', E_USER_WARNING); 
     511     return false; 
     512      } 
     513 
     514      // Get the location of php.ini 
     515      ob_start(); 
     516      phpinfo(INFO_GENERAL); 
     517      $info = ob_get_contents(); 
     518      ob_clean(); 
     519      $info = explode("\n", $info); 
     520      $line = array_values(preg_grep('#php\.ini#', $info)); 
     521 
     522      // Plain vs HTML output 
     523      if (substr($line[0], 0, 4) === '<tr>') { 
     524     list (, $value) = explode('<td class="v">', $line[0], 2); 
     525     $inifile = trim(strip_tags($value)); 
     526      } else { 
     527     list (, $value) = explode(' => ', $line[0], 2); 
     528     $inifile = trim($value); 
     529      } 
     530 
     531      // Check the file actually exists 
     532      if (!file_exists($inifile)) { 
     533     user_error('ini_get_all() Unable to find php.ini', E_USER_WARNING); 
     534     return false; 
     535      } 
     536 
     537      // Check the file is readable 
     538      if (!is_readable($inifile)) { 
     539     user_error('ini_get_all() Unable to open php.ini', E_USER_WARNING); 
     540     return false; 
     541      } 
     542 
     543      // Parse the ini 
     544      if ($extension !== null)  
     545      { 
     546     $ini_all = parse_ini_file($inifile, true); 
     547 
     548     // Lowercase extension keys 
     549     foreach ($ini_all as $key => $value) $ini_arr[strtolower($key)] = $value; 
     550 
     551     // Check the extension exists 
     552     if (isset($ini_arr[$extension])) $ini = $ini_arr[$extension]; 
     553     else { 
     554        user_error("ini_get_all() Unable to find extension '$extension'",E_USER_WARNING); 
     555        return false; 
     556     } 
     557      } else { 
     558     $ini = parse_ini_file($inifile); 
     559      } 
     560 
     561      // Order 
     562      $ini_lc = array_map('strtolower', array_keys($ini)); 
     563      array_multisort($ini_lc, SORT_ASC, SORT_STRING, $ini); 
     564 
     565      // Format 
     566      $info = array(); 
     567      foreach ($ini as $key => $value) $info[$key] = array( 'global_value'  => $value, 'local_value'   => ini_get($key), 'access'        => -1); 
     568      return $info; 
     569   } 
     570   break; 
     571   case 'is_a': function is_a($object, $class)  
     572   { 
     573      if (!is_object($object)) return false;             
     574      if (strtolower(get_class($object)) == strtolower($class))  return true; 
     575      else return is_subclass_of($object, $class); 
     576   } 
     577   break; 
     578   case 'is_callable': function is_callable($var, $syntax_only = false) 
     579   { 
     580      if (!is_string($var) && !(is_array($var) && count($var) == 2 && isset($var[0], $var[1]) && is_string($var[1]) && (is_string($var[0]) || is_object($var[0])))) return false; 
     581      if ($syntax_only) return true; 
     582      if (is_string($var)) return function_exists($var); 
     583      else if (is_array($var))  
     584      { 
     585     if (is_string($var[0])) { 
     586        $methods = get_class_methods($var[0]); 
     587        $method = strtolower($var[1]); 
     588        if ($methods) { 
     589           foreach ($methods as $classMethod) { 
     590          if (strtolower($classMethod) == $method) return true; 
     591           } 
     592        } 
     593     } else return method_exists($var[0], $var[1]); 
     594      } 
     595      return false; 
     596   } 
     597   break; 
     598   case 'mhash':     
     599      !defined('MHASH_CRC32') && define('MHASH_CRC32', 0); 
     600      !defined('MHASH_MD5') && define('MHASH_MD5', 1); 
     601      !defined('MHASH_SHA1') && define('MHASH_SHA1', 2); 
     602      !defined('MHASH_HAVAL256') && define('MHASH_HAVAL256', 3); 
     603      !defined('MHASH_RIPEMD160') && define('MHASH_RIPEMD160', 5); 
     604      !defined('MHASH_TIGER') && define('MHASH_TIGER', 7); 
     605      !defined('MHASH_GOST') && define('MHASH_GOST', 8); 
     606      !defined('MHASH_CRC32B') && define('MHASH_CRC32B', 9); 
     607      !defined('MHASH_HAVAL192') && define('MHASH_HAVAL192', 11); 
     608      !defined('MHASH_HAVAL160') && define('MHASH_HAVAL160', 12); 
     609      !defined('MHASH_HAVAL128') && define('MHASH_HAVAL128', 13); 
     610      !defined('MHASH_TIGER128') && define('MHASH_TIGER128', 14); 
     611      !defined('MHASH_TIGER160') && define('MHASH_TIGER160', 15); 
     612      !defined('MHASH_MD4') && define('MHASH_MD4', 16); 
     613      !defined('MHASH_SHA256') && define('MHASH_SHA256', 17); 
     614      !defined('MHASH_ADLER32') && define('MHASH_ADLER32', 18); 
     615      function mhash($hashtype, $data, $key = '') 
     616      { 
     617     switch ($hashtype) { 
     618     case MHASH_MD5: 
     619        $key = str_pad((strlen($key) > 64 ? pack("H*", md5($key)) : $key), 64, chr(0x00)); 
     620        $k_opad = $key ^ (str_pad('', 64, chr(0x5c))); 
     621        $k_ipad = $key ^ (str_pad('', 64, chr(0x36))); 
     622        return pack("H*", md5($k_opad . pack("H*", md5($k_ipad .  $data)))); 
     623 
     624     default: 
     625        return false; 
     626 
     627        break; 
     628     } 
     629      } 
     630      break; 
     631   case 'get_current_screen': function get_current_screen() { global $current_screen; return (( !isset($current_screen) ) ? null : $current_screen); }; break; 
     632   case 'sys_get_temp_dir': function sys_get_temp_dir() 
     633   { 
     634      if (!empty($_ENV['TMP'])) return realpath($_ENV['TMP']); 
     635      if (!empty($_ENV['TMPDIR']))  return realpath( $_ENV['TMPDIR']); 
     636      if (!empty($_ENV['TEMP'])) return realpath( $_ENV['TEMP']); 
     637 
     638      $tempfile = tempnam(uniqid(rand(),TRUE),''); 
     639      if (file_exists($tempfile)) { 
     640     unlink($tempfile); 
     641     return realpath(dirname($tempfile)); 
     642      } 
     643   } 
     644   break; 
     645   case 'time_sleep_until': function time_sleep_until($timestamp) 
     646   { 
     647      list($usec, $sec) = explode(' ', microtime()); 
     648      $now = $sec + $usec; 
     649      if ($timestamp <= $now) { 
     650     user_error('Specified timestamp is in the past', E_USER_WARNING); 
     651     return false; 
     652      } 
     653 
     654      $diff = $timestamp - $now; 
     655      usleep($diff * 1000000); 
     656      return true; 
     657   } 
     658   break; 
     659   case 'is_scalar': function is_scalar($val){ return (is_bool($val) || is_int($val) || is_float($val) || is_string($val)); }; break; 
     660   case 'md5_file': function md5_file($filename, $raw_output = false) 
     661   { 
     662      // Sanity check 
     663      if (!is_scalar($filename)) { 
     664     user_error('md5_file() expects parameter 1 to be string, ' . gettype($filename) . ' given', E_USER_WARNING); 
     665     return; 
     666      } 
     667 
     668      if (!is_scalar($raw_output)) { 
     669     user_error('md5_file() expects parameter 2 to be bool, ' . gettype($raw_output) . ' given', E_USER_WARNING); 
     670     return; 
     671      } 
     672 
     673      if (!file_exists($filename)) { 
     674     user_error('md5_file() Unable to open file', E_USER_WARNING); 
     675     return false; 
     676      } 
     677 
     678      // Read the file 
     679      if (false === $fh = fopen($filename, 'rb')) { 
     680     user_error('md5_file() failed to open stream: No such file or directory', E_USER_WARNING); 
     681     return false; 
     682      } 
     683 
     684      clearstatcache(); 
     685      if ($fsize = @filesize($filename)) { 
     686     $data = fread($fh, $fsize); 
     687      } else { 
     688     $data = ''; 
     689     while (!feof($fh)) { 
     690        $data .= fread($fh, 8192); 
     691     } 
     692      } 
     693 
     694      fclose($fh); 
     695 
     696      // Return 
     697      $data = md5($data); 
     698      if ($raw_output === true) { 
     699     $data = pack('H*', $data); 
     700      } 
     701 
     702      return $data; 
     703   } 
     704   break; 
     705   case 'microtime': function microtime($get_as_float = false) 
     706   { 
     707      if (!function_exists('gettimeofday')) { 
     708     $time = time(); 
     709     return $get_as_float ? ($time * 1000000.0) : '0.00000000 ' . $time; 
     710      }  
     711      $gtod = gettimeofday(); 
     712      $usec = $gtod['usec'] / 1000000.0; 
     713      return $get_as_float 
     714     ? (float) ($gtod['sec'] + $usec) 
     715     : (sprintf('%.8f ', $usec) . $gtod['sec']); 
     716   } 
     717   break; 
     718   case 'mkdir': function mkdir($pathname, $mode = 0777, $recursive = true, $context = null)  
     719   { 
     720      if (version_compare(PHP_VERSION, '5.0.0', 'gte')) { 
     721     // revert to native function 
     722     return (func_num_args() > 3) 
     723        ? mkdir($pathname, $mode, $recursive, $context) 
     724        : mkdir($pathname, $mode, $recursive); 
     725      } 
     726      if (!strlen($pathname)) { 
     727     user_error('No such file or directory', E_USER_WARNING); 
     728     return false; 
     729      } 
     730      if (is_dir($pathname)) { 
     731     if (func_num_args() == 5) { 
     732        // recursive call 
     733        return true; 
     734     } 
     735     user_error('File exists', E_USER_WARNING); 
     736     return false; 
     737      } 
     738      $parent_is_dir = php_compat_mkdir(dirname($pathname), $mode, $recursive, null, 0); 
     739      if ($parent_is_dir) { 
     740     return mkdir($pathname, $mode); 
     741      } 
     742      user_error('No such file or directory', E_USER_WARNING); 
     743      return false; 
     744   } 
     745   break; 
     746   case 'ob_clean': function ob_clean() 
     747   { 
     748      if (@ob_end_clean()) { 
     749     return ob_start(); 
     750      } 
     751 
     752      user_error("ob_clean() failed to delete buffer. No buffer to delete.", E_USER_NOTICE); 
     753 
     754      return false; 
     755 
     756   } 
     757   break; 
     758   case 'ob_flush': function ob_flush() 
     759   { 
     760      if (@ob_end_flush()) { 
     761     return ob_start(); 
     762      } 
     763 
     764      user_error("ob_flush() Failed to flush buffer. No buffer to flush.", E_USER_NOTICE); 
     765 
     766      return false; 
     767   } 
     768   break; 
     769   case 'ob_get_clean': function ob_get_clean() 
     770   { 
     771      $contents = ob_get_contents(); 
     772 
     773      if ($contents !== false) { 
     774     ob_end_clean(); 
     775      } 
     776 
     777      return $contents; 
     778   } 
     779   break; 
     780   case 'ob_get_flush': function ob_get_flush() 
     781   { 
     782      $contents = ob_get_contents(); 
     783 
     784      if ($contents !== false) { 
     785     ob_end_flush(); 
     786      } 
     787 
     788      return $contents; 
     789   } 
     790   break; 
     791   case 'pathinfo':  
     792      !defined('PATHINFO_FILENAME') && define('PATHINFO_FILENAME', 8); 
     793      function pathinfo($path = false, $options = false) 
     794      { 
     795     // Sanity check 
     796     if (!is_scalar($path)) { 
     797        user_error('pathinfo() expects parameter 1 to be string, ' . gettype($path) . ' given', E_USER_WARNING); 
     798        return; 
     799     } 
     800     if (version_compare(PHP_VERSION, '5.2.0', 'ge')) { 
     801        return pathinfo($path, $options); 
     802     } 
     803     if ($options & PATHINFO_FILENAME) { 
     804        //bug #15688 
     805        if (strpos($path, '.') !== false) { 
     806           $filename = substr($path, 0, strrpos($path, '.')); 
     807        } 
     808        if ($options === PATHINFO_FILENAME) { 
     809           return $filename; 
     810        } 
     811        $pathinfo             = pathinfo($path, $options); 
     812        $pathinfo['filename'] = $filename; 
     813        return $pathinfo; 
     814     } 
     815     return pathinfo($path, $options); 
     816      } 
     817      break; 
     818   case 'scandir': function scandir($directory, $sorting_order = 0) 
     819   { 
     820      if (!is_string($directory)) { 
     821     user_error('scandir() expects parameter 1 to be string, ' . gettype($directory) . ' given', E_USER_WARNING); 
     822     return; 
     823      } 
     824 
     825      if (!is_int($sorting_order) && !is_bool($sorting_order)) { 
     826     user_error('scandir() expects parameter 2 to be long, ' . gettype($sorting_order) . ' given', E_USER_WARNING); 
     827     return; 
     828      } 
     829 
     830      if (!is_dir($directory) || (false === $fh = @opendir($directory))) { 
     831     user_error('scandir() failed to open dir: Invalid argument', E_USER_WARNING); 
     832     return false; 
     833      } 
     834 
     835      $files = array (); 
     836      while (false !== ($filename = readdir($fh))) { 
     837     $files[] = $filename; 
     838      } 
     839 
     840      closedir($fh); 
     841 
     842      if ($sorting_order == 1) { 
     843     rsort($files); 
     844      } else { 
     845     sort($files); 
     846      } 
     847 
     848      return $files; 
     849 
     850   } 
     851   break; 
     852   case 'var_export': function var_export($var, $return = false, $level = 0, $inObject = false) 
     853   { 
     854      // Init 
     855      $indent      = '  '; 
     856      $doublearrow = ' => '; 
     857      $lineend     = ",\n"; 
     858      $stringdelim = '\''; 
     859      $newline     = "\n"; 
     860      $find        = array(null, '\\', '\''); 
     861      $replace     = array('NULL', '\\\\', '\\\''); 
     862      $out         = ''; 
     863 
     864      // Indent 
     865      $level++; 
     866      for ($i = 1, $previndent = ''; $i < $level; $i++) { 
     867     $previndent .= $indent; 
     868      } 
     869 
     870      $varType = gettype($var); 
     871 
     872      // Handle object indentation oddity 
     873      if ($inObject && $varType != 'object') { 
     874     $previndent = substr($previndent, 0, -1); 
     875      } 
     876 
     877 
     878      // Handle each type 
     879      switch ($varType) { 
     880     // Array 
     881      case 'array': 
     882     if ($inObject) { 
     883        $out .= $newline . $previndent; 
     884     } 
     885     $out .= 'array (' . $newline; 
     886 
     887     foreach ($var as $key => $value) { 
     888        if (is_string($key)) { 
     889           // Make key safe 
     890           $key = str_replace($find, $replace, $key); 
     891           $key = $stringdelim . $key . $stringdelim; 
     892        } 
     893 
     894        // Value 
     895        if (is_array($value)) { 
     896           $export = php_compat_var_export($value, true, $level); 
     897           $value = $newline . $previndent . $indent . $export; 
     898        } else { 
     899           $value = php_compat_var_export($value, true, $level); 
     900        } 
     901 
     902        // Piece line together 
     903        $out .= $previndent . $indent . $key . $doublearrow . $value . $lineend; 
     904     } 
     905 
     906     // End string 
     907     $out .= $previndent . ')'; 
     908     break; 
     909 
     910     // String 
     911      case 'string': 
     912     // Make the string safe 
     913     for ($i = 0, $c = count($find); $i < $c; $i++) { 
     914        $var = str_replace($find[$i], $replace[$i], $var); 
     915     } 
     916     $out = $stringdelim . $var . $stringdelim; 
     917     break; 
     918 
     919     // Number 
     920      case 'integer': 
     921      case 'double': 
     922     $out = (string) $var; 
     923     break; 
     924 
     925     // Boolean 
     926      case 'boolean': 
     927     $out = $var ? 'true' : 'false'; 
     928     break; 
     929 
     930     // NULLs 
     931      case 'NULL':  
     932      case 'resource': 
     933     $out = 'NULL'; 
     934     break; 
     935 
     936     // Objects 
     937      case 'object': 
     938     // Start the object export 
     939     $out = $newline . $previndent; 
     940     $out .= get_class($var) . '::__set_state(array(' . $newline; 
     941     // Export the object vars 
     942     foreach(get_object_vars($var) as $key => $value) { 
     943        $out .= $previndent . $indent . ' ' . $stringdelim . $key . $stringdelim . $doublearrow; 
     944        $out .= php_compat_var_export($value, true, $level, true) . $lineend; 
     945     } 
     946     $out .= $previndent . '))'; 
     947     break; 
     948      } 
     949 
     950      // Method of output 
     951      if ($return === true) { 
     952     return $out; 
     953      } else { 
     954     echo $out; 
     955      } 
     956   } 
     957   break; 
     958   case 'array_walk_recursive': function array_walk_recursive(&$input, $funcname) 
     959   { 
     960      if (!is_callable($funcname)) { 
     961     if (is_array($funcname)) { 
     962        $funcname = $funcname[0] . '::' . $funcname[1]; 
     963     } 
     964     user_error('array_walk_recursive() Not a valid callback ' . $funcname, E_USER_WARNING); 
     965     return; 
     966      } 
     967 
     968      if (!is_array($input)) { 
     969     user_error('array_walk_recursive() The argument should be an array', E_USER_WARNING); 
     970     return; 
     971      } 
     972 
     973      $args = func_get_args(); 
     974 
     975      foreach ($input as $key => $item) { 
     976     $callArgs = $args; 
     977     if (is_array($item)) { 
     978        $thisCall = 'array_walk_recursive'; 
     979        $callArgs[1] = $funcname; 
     980     } else { 
     981        $thisCall = $funcname; 
     982        $callArgs[1] = $key; 
     983     } 
     984     $callArgs[0] = &$input[$key]; 
     985     call_user_func_array($thisCall, $callArgs); 
     986      }     
     987   } 
     988   break; 
     989   case 'set_current_screen': function set_current_screen( $id =  '' )  
     990   { 
     991      global $current_screen, $hook_suffix, $typenow, $taxnow; 
     992      $action = ''; 
     993      if ( empty($id) ) { 
     994     $current_screen = str_replace('.php', '', $hook_suffix); 
     995     if ( preg_match('/-add|-new$/', $current_screen) ) $action = 'add'; 
     996     $current_screen = str_replace('-add', '', str_replace('-new', '', $current_screen)); 
     997     $current_screen = array('id' => $current_screen, 'base' => $current_screen); 
     998      } else { 
     999     $id = sanitize_key($id); 
     1000     if ( false !== strpos($id, '-') ) { 
     1001        list( $id, $typenow ) = explode('-', $id, 2); 
     1002        if ( taxonomy_exists( $typenow ) ) {$id = 'edit-tags';$taxnow = $typenow;$typenow = '';} 
     1003     } 
     1004     $current_screen = array('id' => $id, 'base' => $id); 
     1005      } 
     1006      $current_screen = (object) $current_screen; 
     1007      $current_screen->action = $action; 
     1008      if ( 'index' == $current_screen->base )   $current_screen->base = 'dashboard'; 
     1009      if ( 'index' == $current_screen->id ) $current_screen->id = 'dashboard'; 
     1010      if ( 'edit' == $current_screen->id ) { 
     1011     if ( empty($typenow) )$typenow = 'post'; 
     1012     $current_screen->id .= '-' . $typenow; 
     1013     $current_screen->post_type = $typenow; 
     1014      } elseif ( 'post' == $current_screen->id ) { 
     1015     if ( empty($typenow) ) $typenow = 'post'; 
     1016     $current_screen->id = $typenow; 
     1017     $current_screen->post_type = $typenow; 
     1018      } elseif ( 'edit-tags' == $current_screen->id ) { 
     1019     if ( empty($taxnow) )  $taxnow = 'post_tag'; 
     1020     $current_screen->id = 'edit-' . $taxnow; 
     1021     $current_screen->taxonomy = $taxnow; 
     1022      } 
     1023      $current_screen->is_network = is_network_admin(); 
     1024      $current_screen->is_user = is_user_admin(); 
     1025      if ( $current_screen->is_network ) {$current_screen->base .= '-network';$current_screen->id .= '-network';}  
     1026      elseif ( $current_screen->is_user ) {$current_screen->base .= '-user';$current_screen->id .= '-user';} 
     1027     $current_screen = apply_filters('current_screen', $current_screen); 
     1028   } 
     1029   break; 
     1030   } 
    10001031} 
    10011032 
    1002 if(!function_exists('sqpt_error_log')) aadv_DEFINE_function('sqpt_error_log'); 
    10031033     
    10041034 
     
    10551085     *      [qn] => askapache_debug 
    10561086     *      [http] => //w 
    1057      *      [file] => /wp-content/plugins/askapache-debug-viewer/askapache-debug-viewer.php 
     1087     *      [file] => /home/askapach/sites/askapache.com/htdocs/wp-content/plugins/askapache-debug-viewer/askapache-debug-viewer.php 
    10581088     *      [title] => <a href="http://www.askapache.com/wordpress/debug-viewer-plugin.html" title="Visit plugin homepage">AskApache Debug Viewer</a> 
    10591089     *      [pb] => askapache-debug-viewer/askapache-debug-viewer.php 
     
    10761106     * [options] => Array 
    10771107     *      [page] => home 
    1078      *      [logfile] => php_error.log 
    1079      *      [dirtoexplore] => /tmp 
     1108     *      [logfile] => /opt/a22161/logs/vhost_custom/www.askapache.com/php_error.log 
     1109     *      [dirtoexplore] => /home/askapach/sites/askapache.com/tmp 
    10801110     *      [log_errors] => 1 
    10811111     *      [debug_live] => 0 
     
    10971127        'log_errors' => '0', 
    10981128        'debug_live' => '0', 
    1099         'display_height' => 300, 
     1129        'display_height' => 500, 
    11001130        'admin_footer' => '1', 
    11011131        'wp_footer' => '1', 
    11021132        'admin_bar' => '1', 
    1103         'error_reporting' => 2147483647, 
     1133        'error_reporting' => 4983, //2147483647, 
    11041134        'plugin_debug_level' => 0, 
    1105         'debug_mods_v' => 2048, 
    1106         'debug_mods' => 163727 
     1135        'debug_mods_v' => 7, 
     1136        'debug_mods' => 7583 
    11071137    ); 
    11081138     
     
    11171147     *                  [name] => Settings 
    11181148     *                  [title] => Setup Debugging Options 
    1119      *                  [nonce] =>  
     1149     *                  [nonce] => https://www.askapache.com/wp-admin/options-general.php?page=askapache-debug-viewer.php&amp;adv7_page=home&amp;_wpnonce=141fb3899c 
    11201150     *   [wpconfig] => Array 
    11211151     *                  [name] => wp-config File 
    11221152     *                  [title] => Current and recommended wp-config.php file 
    1123      *                  [nonce] =>  
     1153     *                  [nonce] => https://www.askapache.com/wp-admin/options-general.php?page=askapache-debug-viewer.php&amp;adv7_page=wpconfig&amp;_wpnonce=d0c89659a7 
    11241154     *   [phpinfo] => Array 
    11251155     *                  [name] => PHPINFO 
    11261156     *                  [title] => phpinfo 
    1127      *                  [nonce] =>  
     1157     *                  [nonce] => https://www.askapache.com/wp-admin/options-general.php?page=askapache-debug-viewer.php&amp;adv7_page=phpinfo&amp;_wpnonce=8c9331fe28 
    11281158     *   [server-status] => Array 
    11291159     *                  [name] => Server Status 
    11301160     *                  [title] => Server Status 
    1131      *                  [nonce] =>  
     1161     *                  [nonce] => https://www.askapache.com/wp-admin/options-general.php?page=askapache-debug-viewer.php&amp;adv7_page=server-status&amp;_wpnonce=a148d0af82 
    11321162     *   [server-info] => Array 
    11331163     *                  [name] => Server Info 
    11341164     *                  [title] => Server Info 
    1135      *                  [nonce] =>  
     1165     *                  [nonce] => https://www.askapache.com/wp-admin/options-general.php?page=askapache-debug-viewer.php&amp;adv7_page=server-info&amp;_wpnonce=ae9afd29a9 
    11361166     *   [server-env] => Array 
    11371167     *                  [name] => Server Env 
    11381168     *                  [title] => Printenv Output 
    1139      *                  [nonce] =>  
     1169     *                  [nonce] => https://www.askapache.com/wp-admin/options-general.php?page=askapache-debug-viewer.php&amp;adv7_page=server-env&amp;_wpnonce=9b8d9ab463 
    11401170     *   [files] => Array 
    11411171     *                  [name] => Directory File Browser 
    11421172     *                  [title] => Browse files and directories 
    1143      *                  [nonce] =>  
     1173     *                  [nonce] => https://www.askapache.com/wp-admin/options-general.php?page=askapache-debug-viewer.php&amp;adv7_page=files&amp;_wpnonce=0cf667012c 
    11441174     * 
    11451175     * @since 2.2.8 
     
    12431273     * 
    12441274     * [old_inis] => Array 
    1245      *      [open_basedir] =>  
     1275     *      [open_basedir] => /home/askapach/sites/askapache.com/tmp/:/home/askapach/sites/askapache.com/htdocs/:/home/askapach/sites/askapache.com/cgi-bin/:/home/askapach/sites/askapache.com/inc/:/home/askapach/sites/askapache.com/logs/:/opt/a22161/logs/vhost_custom/www.askapache.com/:/home/askapach/sites/captcha.askapache.com:/home/askapach/sites/uploads.askapache.com 
    12461276     *      [tidy.clean_output] =>  
    12471277     *      [xdebug.default_enable] =>  
     
    13851415 
    13861416    /** AA_DEBUG::DefaultOptions() 
     1417     * @version 1.2 
    13871418     */ 
    13881419    function DefaultOptions($save=false) 
     
    14081439                             'error_reporting' => 4983, 
    14091440                             'plugin_debug_level' => 0, 
    1410                              'display_height' => 300, 
    1411                              'debug_mods_v' =>2048, 
    1412                              'debug_mods' => 163727 
     1441                             'display_height' => 500, 
     1442                             'debug_mods_v' =>7, 
     1443                             'debug_mods' => 7583 
    14131444                            ); 
    14141445         
     
    15821613    { 
    15831614        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',20); 
     1615        if(!function_exists('get_current_screen')) aadv_DEFINE_function('get_current_screen'); 
    15841616        $current_screen=get_current_screen(); 
    15851617         
     
    16251657            'id'        => $this->plugin['op'].'menu', 
    16261658            'title' => $this->plugin["short-name"], 
    1627             'href'  => admin_url($this->plugin["action"]) 
     1659            'href'  =>  add_query_arg( "{$this->plugin['op']}_page", 'home', admin_url($this->plugin["action"]) ) 
    16281660        ) ); 
    16291661 
     
    16641696         
    16651697         
     1698        if (isset($_GET["{$this->plugin['op']}_page"])) $this->options['page']='home'; 
    16661699 
    16671700        // Handle page 
     
    16931726         
    16941727         
     1728         
    16951729 
    16961730        // parse and handle post requests to plugin 
     
    17691803 
    17701804    /** AA_DEBUG::AdminPage() 
    1771      * @version 1.1 
     1805     * @version 1.2 
    17721806     */ 
    17731807    function AdminPage() 
     
    18391873                    $response=''; 
    18401874                    $request='GET '.$url.' HTTP/1.0' 
    1841                     ."\r\n".'Host: '.$_SERVER['HTTP_HOST']."\r\n".'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)' 
    1842                     ."\r\n".'Accept-Encoding: none'."\r\n".'Referer: http://www.askapache.com/'."\r\n".'Cookie: '.$_SERVER['HTTP_COOKIE']."\r\n".'Connection: close'."\r\n\r\n";                     
     1875                    ."\r\n".'Host: '.$_SERVER['HTTP_HOST']."\r\n".'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)'."\r\n".'Accept-Encoding: none'."\r\n".'Referer: http://www.askapache.com/'."\r\n".'Cookie: '.$_SERVER['HTTP_COOKIE']."\r\n".'Connection: close'."\r\n\r\n";                     
    18431876                    fwrite($fp, $request); 
    18441877                    while (!feof($fp)) $response .= fread($fp, 1); 
     
    18741907                    $response=''; 
    18751908                    $request='GET '.$url.' HTTP/1.0' 
    1876                     ."\r\n".'Host: '.$_SERVER['HTTP_HOST']."\r\n".'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)'."\r\n".'Accept-Encoding: none' 
    1877                     ."\r\n".'Referer: http://www.askapache.com/'."\r\n".'Cookie: '.$_SERVER['HTTP_COOKIE']."\r\n".'Connection: close'."\r\n\r\n";                    
     1909                    ."\r\n".'Host: '.$_SERVER['HTTP_HOST']."\r\n".'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)'."\r\n".'Accept-Encoding: none'."\r\n".'Referer: http://www.askapache.com/'."\r\n".'Cookie: '.$_SERVER['HTTP_COOKIE']."\r\n".'Connection: close'."\r\n\r\n";                     
    18781910                    fwrite($fp, $request); 
    18791911                    while (!feof($fp)) $response .= fread($fp, 1); 
     
    19011933                    $response=''; 
    19021934                    $request='GET '.$url.' HTTP/1.0' 
    1903                     ."\r\n".'Host: '.$_SERVER['HTTP_HOST']."\r\n".'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)' 
    1904                     ."\r\n".'Accept-Encoding: none'."\r\n".'Referer: http://www.askapache.com/'."\r\n".'Cookie: '.$_SERVER['HTTP_COOKIE']."\r\n".'Connection: close'."\r\n\r\n";                     
     1935                    ."\r\n".'Host: '.$_SERVER['HTTP_HOST']."\r\n".'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)'."\r\n".'Accept-Encoding: none'."\r\n".'Referer: http://www.askapache.com/'."\r\n".'Cookie: '.$_SERVER['HTTP_COOKIE']."\r\n".'Connection: close'."\r\n\r\n";                     
    19051936                    fwrite($fp, $request); 
    19061937                    while (!feof($fp)) $response .= fread($fp, 1); 
     
    21892220     
    21902221         
    2191          
     2222 
    21922223         
    21932224        foreach ( array_keys($this->debug_mods) as $k=>$id ) 
     
    23562387     *      [qn] => askapache_debug 
    23572388     *      [http] => //w 
    2358      *      [file] => /wp-content/plugins/askapache-debug-viewer/askapache-debug-viewer.php 
     2389     *      [file] => /home/askapach/sites/askapache.com/htdocs/wp-content/plugins/askapache-debug-viewer/askapache-debug-viewer.php 
    23592390     *      [title] => <a href="http://www.askapache.com/wordpress/debug-viewer-plugin.html" title="Visit plugin homepage">AskApache Debug Viewer</a> 
    23602391     *      [pb] => askapache-debug-viewer/askapache-debug-viewer.php 
     
    29142945    /** AA_DEBUG::get_debug_functions() 
    29152946     * 
    2916      * @version 1.2 
     2947     * @version 1.3 
    29172948     * @param mixed $vb 
    29182949     */ 
     
    29222953         
    29232954        $defined_funcs=@get_defined_functions(); 
    2924         if(!$vb){ 
    2925             $out=$defined_funcs['user']; 
    2926         } 
     2955        if(!$vb) $out=$defined_funcs['user']; 
    29272956        else { 
     2957            $out=array(); 
    29282958            ob_start(); 
     2959            $this->pp($defined_funcs['user'], false); 
    29292960            foreach ( $defined_funcs['user'] as $v ) 
    29302961            { 
     2962                //ReflectionFunction::export($v); 
     2963                $x=new ReflectionFunction($v); 
     2964                $fn=$x->getFileName(); 
     2965                $fs=$x->getStartLine(); 
     2966                $fe=$x->getEndLine(); 
     2967                $pn=$x->getNumberOfParameters(); 
     2968                $co=$x->getDocComment(); 
     2969                 
     2970                if(empty($co))$co=''; 
     2971                else $co="{$co}\n"; 
     2972                 
     2973                if($pn==0)$pn=''; 
     2974                else $pn=" '{$pn}' "; 
     2975                 
     2976                echo "\n\n++ {$fn}:{$fs} - {$fe}\nfunction {$v}({$pn})\n{$co}"; 
     2977                echo $this->get_file_lines_at( $fn, $fs, $fe    ); 
     2978                /* 
    29312979                $ext = new ReflectionFunction($v); 
    2932                 echo "\n\n[ $v ]\n"; 
    2933                 $this->pp(array('FileName'=>$ext->getFileName(), 
    2934                                                 'StartLine'=>$ext->getStartLine(), 
    2935                                                 'EndLine'=>$ext->getEndLine(), 
    2936                                                 'NumberOfParameters'=>$ext->getNumberOfParameters(), 
    2937                                                 'Parameters'=>$ext->getParameters(), 
    2938                                                 'DocumentationComments'=>$ext->getDocComment())); 
     2980                 
     2981                $params=$ext->getParameters(); 
     2982                if(sizeof($params)<1)$params=''; 
     2983                $out[$v]=array( 
     2984                                    'FileName'=>$ext->getFileName(), 
     2985                                    'StartLine'=>$ext->getStartLine(), 
     2986                                    'EndLine'=>$ext->getEndLine(), 
     2987                                    'NumberOfParameters'=>$ext->getNumberOfParameters(), 
     2988                                    'Parameters'=>$params, 
     2989                                    'DocumentationComments'=>$ext->getDocComment(), 
     2990                                    'Export'=>ReflectionFunction::export($v,true) 
     2991                                    ); 
     2992                */ 
     2993                 
    29392994            } 
    29402995            $out=ob_get_clean(); 
     
    34433498        //if(!is_array($defined_funcs) || !isset($defined_funcs['internal']))  
    34443499        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    3445         return $this->pp($pa,true); 
     3500        return $this->pp($oa,true); 
    34463501    } 
    34473502 
     
    48804935 
    48814936 
    4882      
     4937    /** AA_DEBUG::get_file_lines_at() 
     4938    */ 
     4939    //@@ /home/redstate/sites/redstate.com/htdocs/wp-includes/load.php 106 - 116 
     4940    function get_file_lines_at($f='', $s=0, $e=0) 
     4941    { 
     4942        //sqpt_error_log("$f $s $e"); 
     4943         
     4944        $ret = array(); 
     4945        if ( 
     4946             $lines = explode( 
     4947                                    "\n", 
     4948                                    str_replace( 
     4949                                                    array("\r\n","\c\r","\r"),"\n", 
     4950                                                        implode( 
     4951                                                                  '',file($f) 
     4952                                                                  ) 
     4953                                                        ) 
     4954                                    ,($e+5) 
     4955                                    ) 
     4956             ) 
     4957        { 
     4958            $ret=array_slice($lines, ($s-1), ($e-$s+1)); 
     4959            unset($lines); 
     4960            array_map('rtrim',$ret); 
     4961            return join("\n", $ret); 
     4962        } 
     4963    } 
    48834964     
    48844965     
  • askapache-debug-viewer/trunk/readme.txt

    r522076 r522298  
    11=== AskApache Debug Viewer === 
    2 Contributors: askapache,cduke250 
     2Contributors: askapache 
    33Donate link: http://www.askapache.com/donate/ 
    44Tags: debug, debugging, error, errors, problems, support, admin, programmer, developer, plugin, development, information, stats, logs, queries, htaccess, password, error, support, askapache 
    55Requires at least: 3.0 
    66Tested up to: 3.4-alpha-20244 
    7 Stable tag: 2.3 
     7Stable tag: 2.3.1 
    88 
    99This advanced debugging plugin is custom-made for WordPress Developers, Plugin Developers, or anyone wanting to see under the hood of their website and diagnose problems such as with the AskApache PassPro Plugin. 
Note: See TracChangeset for help on using the changeset viewer.