loader_help.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:11k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. //
  3. // ionCube Loader Install Assistant v1.2
  4. //
  5. // Last modified 2003-08-05
  6. //
  7. // Copyright (c) 2003 ionCube Ltd.
  8. //
  9. function emit_image($data)
  10. {
  11.   header("Content-type: image/gif");
  12.   header("Cache-control: public");
  13.   echo base64_decode($data[4]);
  14. }
  15. function img_link($img, $width = 0, $height = 0)
  16. {
  17.   global $HTTP_SERVER_VARS, $images;
  18.   
  19.   if ($imgdata = @$images[$img]) {
  20.     $w = ($width ? $width : $imgdata[0]);
  21.     $h = ($height ? $height : $imgdata[1]);
  22.     $t = $imgdata[2];
  23.     $u = $imgdata[3];
  24.     $im = "<img border=0 title="$t" alt="$t" width=$w height=$h src="".$HTTP_SERVER_VARS['REQUEST_URI']."?img=$img">";
  25.     
  26.     return ($u ? "<a target=_blank href="http://$u">$im</a>" : $im);
  27.   } else {
  28.     return '';
  29.   }
  30. }
  31. function query_self($text, $query)
  32. {
  33.   global $HTTP_SERVER_VARS;
  34.   
  35.   if (use_html()) {
  36.     return '<a target=_blank href="'.$HTTP_SERVER_VARS['REQUEST_URI']."?q=$query">$text</a>";
  37.   } else {
  38.     return $text;
  39.   }
  40. }
  41. $images = array();
  42. $images['logo'] = array(180,41,'ionCube','','R0lGODlhtAApAMYAAAICAgoKCr6+vigoKKKiolJSUnJycu4eJmBgYGpqauRYUG5ubspORtxEWdRlc/Z4oPWtqsfHx9o+Wr46Tua5uc/Pz9pybsLCwtN9djo6OsIyQtbW1uVjVYaGhuZqZq4qMiAgINra2ri4uOp+fs46UuoqJvZaeYqKitlPVt7e3vZum8qCdvY6LkxMTN6+su4mJhgYGPY+KtY0Po6Ojt6injQ0NOpGTto6W946WPYqKu9XjZKSku1NYdqdnbCwsOLi4t4yLvaGitpqbvYiK9aemhAQEPZfjNJOSvIhJPZCS+KKipycnAYGBvO1sejo6Oa/u/BPefZqnfYmLaqqqllZWfY6SX5+fkNDQ/JOWPQvL+CYnO4iJu5NSPImKfbCxdZudfYqNvbq6vU2MfY+TP///////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAH8ALAAAAAC0ACkAAAf+gDQeYjlDXYQ5iYqLjI2LWWJZLFkmKH+XmJmam5ydnp+goaKjpKWZFE1cJV1ZMV1IsLGys7Szr7BRUKa7vL2+v8A0QTFJxUljyMnKy8zJVWPPVdIPlsDW19jZoww2JlFGJjrhRkY65Obl5+rp7OTsUQ3a8vP0vysODkL6+V9C/V//AvoTCHAgQHxCLHzBUK+hw4cQI0qcCNELhItNLmrcyLGjRwgZaTSxSIGiyZOmVhwBUuJAiRclYsqcSbMmzSw5tsTkQgLUj58/UAr9U4GA0Sn1LqpCsqWLo6dQc0ASIyWHmAcSPokowrVIhKEnEQAYy2QDPQpPuHTZcmDLlhf+cOPKnUs3rlu3SF6ouPGJwNixX8FuchKBwIkECU74MGtNLFnG8ih4sfGW7d3LmDNrrvwCCRgVWT1N+QsgsOBLIloUIf2XCQwRwBwDKHt28hYkbTfr3n3ghU7Qn0b/vXD6T4garJMDWBK7NWRtkm3APXCglnVZmn13zgLcU4gZ4Hc4OS0ggPLkPpo/rk2Zae7dmmfd7f3ic+jioSowSZ6hgw8ROyCwGnG/yEbbPNHBZRl88DH1Vm45dIcfKKuRdkVQm0QwXoHO0eOCbW69x+CIvpUgITAViCCChrukKEIFnhjA2gIOGcjYDyoKsCEoIagoQgqbRHcbW9dZB19n9mn+FUARS5qWSQRX7EfaAARw4gQISwag4wIVjlXEDpxIOVYLo0zBJJMCbJLBmWRiYmMFGbCWAYyddNCll1bsmKBvImKmIGbyZQbTXn215uQlVJw31gDP/eGEeWPtMMB5CWjiA2kBhDDKEqTBpgkIf2WQiYEdQMoaE0hp4sSk54Gg6R9ChqjbCzn86RtbbVGn61uddREFX6KRdugViv5VxHM/mHrnqU7KBsAVpHD6l6eZgDqWqG4WiymdmFjbGmsDXCLkrZc5iFsWNrDwDDJJEFOMu8Wwm4QNWBU6XCYLsNYCAT4kcGe4mDzKWhEdiFAqaQVkwupYVW7a6SYLY3uJs2P+1bDEFIlaiK+FImxwQcZjdQCrbbhVB8ttTCERoQlQQMGDDi63LLPMPMwMhQ4aBCcsJimYCkCql2zg7XKYJEuaq5gIcHQmpjLBbSjSjkVtt6GOyhoVmUQNQACMOdFlwlZ7OTJl5AK6RRIPyKCEFlr00APbbsftNtxra0GEC/aOReAfVpBGoyZK/wVCwD6nV62xGP4hptPRPqxJxGGPBcOOlywMQMN+/ZV40KZWMK6IDrqVhApHUJ6NcIBhYjmQmwy9odGSm95Ca68q/hfXjU/betXZ/vV3JieQVukfsoHgxPHIOwHDX0skKOuQC46hAgph0JO53pcof3snzgYm8LX+m4DMRO0+p+mw7o/zPrHjT2r8R5xkdSW/8OPihdfJW1ShwhYKcOB//xzwQAAHKMD+GRAFFtDZXwLTM2NxjzSpgh0AwJYJ8dVuaCI7n9R2B77ejeVpl6jAlC4xNG214AmT6Qx1ynYXMPAAC+kiRCQkwYIa1lAMOJTKJIwgg7wBgEA/6FIROpEA0jTsewAYXgVphwmQAQBgotDa1By1vA6u7y8g/MMGSFMDEmrLQnuyTOju4hvcOEhXuFlQdW5THe7chxOoKw0mqjiWTiBngZeQoBKbyMRLXG8shoMa+y6RAjFJjHikCSQmRICwS8APACAQgQAkSclJCkAAngMRdUL+N8aU3Q9/KTuZb9aSJE/8cW933KCq7kQ434Wvj5cQEwBgsDlPaI05mbiU+hD5F6xpIl9/scIlgAmAIYIijPfrDBnN5RYFebIyZNyCGxWYukvsYISa6AAXi2aqPSIKln/Q5tEaxQlG/oWCl0glAA7prCLUzlE+85Q5x4JLTwjJPWbzkz5Z+ILe/OaNmzhlwO5EhR0RQJbUQuLv+EiWd/6hhExAQAV25IQKLMB8G5Alt4pIGnaypgasc8LsjLUjOgZAkZcQQAbA5DxBgZKT+LsL/vqJpBNtIo5O0tosr9ACywGgTXns5isbqokU0JE0RQCBUqUENMsxgaclXGfkjMX+02UJExN/BEANDLCEDlChiiy1TT9z00loznRIMY3mNE1Jmr0N84sDoJxChzobh/4hBY8sFpj8qKgAeMuj3zpPXDXB0WLNYGyVWWNZh0SuvOSFhWzxTSk7EUe3XmIJy2pNAkznBDF58w8W7MQSosqaDL41OTD42C5lU4QlHPUvA7DrH3aQ2dakJ1agi+aILnOrA6y1ExUogHCpINsfzKAGMOjKABKQxUskQLgFQOkfCABdBJhOExcwQA1AID8QZMAAjfLBmrgygA6MZwnQPSxWoZuAMPzAAAPoSg322okUnAC5XYFBDTrAGBRyAWXz0dUmcyXgApeMjKMk1DWSdxKWBn8Ceb84Xi0f7GBMfIgL/URCCcx1Mg7HAq0d1u1bVICDCZk4IihUQEvagoQuxCUvnKmLgv7EK14p+MQ4PksqstCFIbS4xV0I8o9fIWRbCDnIXfDnELLwgHjk+MnaGAEWsGCCKlv5yljOspazHIUgOBnKYAbGByRQZR2Y+cxoNnM41HzmNaf5zDczxwTCTOc62/nOpAgEADs=');
  43. $images['blank'] = array(0,0,'','','R0lGODlhCgAKAID/AMDAwAAAACH5BAEAAAAALAAAAAAKAAoAAAIIhI+py+0PYysAOw==');
  44. if ($img = @$_GET['img']) {
  45.   if ($imgdata = @$images[$img]) {
  46.     emit_image($imgdata);
  47.   }
  48.   exit(0);
  49. }
  50. if ($q = @$_GET['q']) {
  51.   if ($q == 'phpinfo') {
  52.     phpinfo(INFO_GENERAL);
  53.   }
  54.   exit(0);
  55. }
  56. //
  57. // Determine PHP flavour
  58. //
  59. $php_version = phpversion();
  60. $php_flavour = substr($php_version,0,3);
  61. //
  62. // Get the full name and short name for the OS
  63. //
  64. $os_name = substr(php_uname(),0,strpos(php_uname(),' '));
  65. $os_code = strtolower(substr($os_name,0,3));
  66. $dll_sfix = (($os_code == 'win') ? '.dll' : '.so');
  67. //
  68. // Analyse the PHP build
  69. //
  70. ob_start();
  71. phpinfo(INFO_GENERAL);
  72. $php_info = ob_get_contents();
  73. ob_end_clean();
  74. $thread_safe = false;
  75. $debug_build = false;
  76. $php_ini_path = '';
  77. foreach (split("n",$php_info) as $line) {
  78.   if (eregi('command',$line)) {
  79.     continue;
  80.   }
  81.   if (eregi('thread safety.*(enabled|yes)',$line)) {
  82.     $thread_safe = true;
  83.   }
  84.   if (eregi('debug.*(enabled|yes)',$line)) {
  85.     $debug_build = true;
  86.   }
  87.   if (eregi("configuration file.*(</B></td><TD ALIGN="left">| => |v">)([^ <]*)(.*</td.*)?",$line,$match)) {
  88.     $php_ini_path = $match[2];
  89.     //
  90.     // If we can't access the php.ini file then we probably lost on the match
  91.     //
  92.     if (@!file_exists($php_ini_path)) {
  93.       $php_ini_path = '';
  94.     }
  95.   }
  96. }
  97. //
  98. // We now know enough to give guidance
  99. //
  100. $ts = ((($os_code != 'win') && $thread_safe) ? '_ts' : '');
  101. $required_loader = "ioncube_loader_${os_code}_${php_flavour}${ts}${dll_sfix}";
  102. function use_html()
  103. {
  104.   return (php_sapi_name() != 'cli');
  105. }
  106. function para($text)
  107. {
  108.   return ($text . (use_html() ? '<p>' : "nn"));
  109. }
  110. function code($text)
  111. {
  112.   return (use_html() ? "<code>$text</code>" : $text);
  113. }
  114. function table($contents)
  115. {
  116.   if (use_html()) {
  117.     $res = '<table bgcolor="#e0e0ff" cellpadding=5 cellspacing=0 border=0>';
  118.     foreach ($contents as $row) {
  119.       $res .= "<tr>n";
  120.       foreach ($row as $cell) {
  121. $res .= "<td>$cell</td>n";
  122.       }
  123.       $res .= "</tr>n";
  124.     }
  125.     $res .= "</table>n";
  126.   } else {
  127.     $colwidths = array();
  128.     foreach ($contents as $row) {
  129.       $cv = 0;
  130.       foreach ($row as $cell) {
  131. $l = @$colwidths[$cv];
  132. $cl = strlen($cell);
  133. if ($cl > $l) {
  134.   $colwidths[$cv] = $cl;
  135. }
  136. $cv++;
  137.       }
  138.     }
  139.     $tw = 0;
  140.     foreach ($colwidths as $cw) { $tw += ($cw + 2); }
  141.     $tw2 = $tw + count($colwidths) - 1 + 2;
  142.     $res = '+' . str_repeat('-',$tw2 - 2) . "+n";
  143.     foreach ($contents as $row) {
  144.       $cv = 0;
  145.       foreach ($row as $cell) {
  146. $res .= '| ' . str_pad($cell, $colwidths[$cv]) . ' ';
  147. $cv++;
  148.       }
  149.       $res .= "|n";
  150.     }
  151.     $res .= '+' . str_repeat('-',$tw2 - 2) . "+n";
  152.   }
  153.   return $res;
  154. }
  155. function ilia_header()
  156. {
  157.   if (use_html()) {
  158.     return '<html>
  159. <head>
  160. <title>ionCube Loader Install Assistant</title>
  161. </head>
  162. <body bgcolor=white>
  163. <table width="100%" cellpadding=5 cellspacing=0 border=0>
  164. <tr>
  165. <td>'.img_link('logo').'</td>
  166. <td valign=bottom align=center><font face="helvetica,verdana" size="+2">Loader Install Assistant</font></td>
  167. <td>'.img_link('blank',180,1).'</td></tr>
  168. </table>
  169. <p>';
  170.   } else {
  171.     return '
  172. ionCube Loader Install Assistant
  173. --------------------------------
  174. ';
  175.   }
  176. }
  177. function heading($text)
  178. {
  179.   if (use_html()) {
  180.     return para("<font face="helvetica,verdana"><b>$text</b></font>");
  181.   } else {
  182.     return para($text . "n" . str_repeat('-', strlen($text)));
  183.   }
  184. }
  185. function ilia_analysis()
  186. {
  187.   global $php_version, $php_flavour, $os_name, $thread_safe, $php_ini_path, $required_loader,$os_code;
  188.   $res = para('Analysis of your system configuration shows:')
  189.     . table(array(array("PHP Version",$php_version),
  190.   array("Operating System",$os_name),
  191.   array("Threaded PHP",($thread_safe ? 'Yes' : 'No')),
  192.   array("php.ini file", ($php_ini_path ? $php_ini_path : query_self('Check phpinfo() output for location','phpinfo'))),
  193.   array("Required Loader",$required_loader)
  194.   ))
  195.     . para('');
  196.   $res .= heading('Installing the Loader in php.ini');
  197.   $res .= para('To install the loader in your '.code('php.ini').' file, just edit
  198. the '.($php_ini_path ? code($php_ini_path).' ' : '') . 'file and add the following line before any
  199. other '.code('zend_extension').' lines:');
  200.   if ($os_code == 'win') {
  201.     if (use_html()) {
  202.       $path = '&lt;drive&gt;:\&lt;path&gt;\';
  203.     } else {
  204.       $path = '<drive>:\<path>\';
  205.     }
  206.     $ini = "zend_extension_ts = $path$required_loader";
  207.   } else {
  208.     if (use_html()) {
  209.       $path = '/&lt;path&gt;/';
  210.     } else {
  211.       $path = '/<path>/';
  212.     }
  213.     if ($thread_safe) {
  214.       $ini = "zend_extension_ts = $path$required_loader";
  215.     } else {
  216.       $ini = "zend_extension = $path$required_loader";
  217.     }
  218.   }
  219.   if (use_html()) {
  220.     $res .= "<table bgcolor="#c8e8c8" cellpadding=2 cellspacing=0 border=0><tr><td><code>$ini</code></td></tr></table><p>";
  221.   } else {
  222.     $res .= para("  $ini");
  223.   }
  224.   if ($os_code == 'win') {
  225.     $res .= para('where '.code($path).' is where you've installed the loader.');
  226.   } else {
  227.       $res .= para('where '.code($path).' is where you've installed the loader, e.g. '.code('/usr/local/ioncube/'));
  228.   }
  229.   $res .= para("Finally, stop and restart your web server software for the changes to
  230. take effect.");
  231.   if (!ini_get('safe_mode') && ($os_code != 'win')) {
  232.     $res .= heading('Installing the Loader for run-time loading');
  233.     $res .= para('To install for runtime loading, create a directory called '.code('ioncube') . '
  234. at or above the top level of your encoded files, and ensure that the directory
  235. contains the '.code($required_loader) . ' loader. If run-time install of
  236. the Loader is possible on your system then encoded files should automatically
  237. install the loader when needed.');
  238.   }
  239.   return $res;
  240. }
  241. function ilia_footer()
  242. {
  243.   $email = '';
  244.   if (use_html()) $email = "<a href="mailto:$email">$email</a>";
  245.   $res = heading('Further Help');
  246.   $res .= para("Please contact $email if you require further assistance with
  247. your install.");
  248.   if (use_html()) {
  249.     $res .= '
  250. <table width="100%" cellpadding=0 cellspacing=5 border=0>
  251. <tr bgcolor="#8080e0">
  252. <td>'.img_link('blank',1,1).'</td>
  253. </tr>
  254. <tr align=center>
  255. <td><font size="1" face="helvetica,verdana,sans-serif">Copyright 2002-2003 ionCube Ltd.&nbsp;&nbsp;All rights reserved.</td>
  256. </tr>
  257. </table>
  258. </body>
  259. </html>
  260. ';
  261.   }
  262.   return $res;
  263. }
  264. function ilia_debug_builds_unsupported()
  265. {
  266.   $email = '';
  267.   if (use_html()) $email = "<a href="mailto:$email">$email</a>";
  268.   return para('IMPORTANT NOTE: Your PHP installation may be incorrect
  269. ------------------------------------------------------
  270. Your PHP installation appears to be built with debugging
  271. support enabled, and extensions cannot be installed in this case.')
  272.     .para('Debugging support in PHP produces slower execution, is not recommended for
  273. production builds, and was probably a mistake.')
  274.     .para("Debugging support may sometimes be incorrectly detected, and so please
  275. continue to follow the installation instructions and try the Loader. 
  276. However do email us at $email if the Loader fails to be 
  277. installed, and include a web link to either this script or a page that 
  278. calls phpinfo() so that we can help.");
  279. }
  280. //
  281. // Create the output
  282. //
  283. echo ilia_header();
  284. echo ilia_analysis();
  285. if ($debug_build) {
  286.   echo ilia_debug_builds_unsupported();
  287. }
  288. echo ilia_footer();