求教eAccelerator如何编译php文件 我是想请教如何利用eAccelerator把php脚本文件转换成优化、加密后的代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 eAccelerator的readme文件说“eAccelerator 包含一个 Php 编码器和加载器。您可以使用编码器对 .Php 脚本进行编码,从而能够以非源代码方式发布您的 Php 程序。”怎样操作才能得到编码后的php文件? 我的服务器已经配置好了eAccelerator,运行正常。浏览源代码php文件后,可以在eAccelerator的临时文件夹里看到编码后的php文件,但删除源代码php文件,直接浏览编码后的php文件却出现错误,不知怎样才能正确得到加密后的文件?如何使用这些加密文件? 可以用zend加密啊。而且zend应该用的多吧^_^! 1.新建 build.bat 放在php.exe所在的目录下(注意改里面的路径):@ECHO OFF@echo - 编译php代码@echo --------------------if exist php.exe GOTO Normal:Normalset PHP_BIN=php.exe%PHP_BIN% -q encoder.php d:\project\php\myproject\www -rcf -sphp -sinc -o d:\release\myproject\www@echo - 编译结束@echo ----------pause2. 你下载eAccelerator时有附有一个encoder.php文件的. 如果没有, 请新建一个,内容如下:<?php$web_error = "";function eaccelerator_encoder_usage() { echo "Usage:\tphp -q encoder.php [options] source_file_name\n"; echo "\tphp -q encoder.php [options] source_file_name...\n"; echo "\tphp -q encoder.php [options] source_directory_name...\n\n"; echo "Options:\n"; echo "\t-s suffix\n\t\tencode files only with following suffix (default is \"php\")\n"; echo "\t-a\n\t\tencode all files (no by default)\n"; echo "\t-l\n\t\tfollow symbolic links (no by default)\n"; echo "\t-r\n\t\tencode directories recursively (no by default)\n"; echo "\t-c\n\t\tcopy files those shouldn't be encoded (no by default)\n"; echo "\t-f\n\t\toverwrite existing files (no by default)\n"; echo "\t-w\n\t\texclude check for eaccelerator_load() and subsequent warning\n"; echo "\t-o target\n\t\tIf you encode only one script then 'target' specifyes an output\n"; echo "\t\tfile name. If you encode directory or several files at once\n"; echo "\t\tthen 'target' specifyes an output directory name.\n"; echo "\nExamples:\n"; echo "\tphp -q encoder.php some_file.php\n"; echo "\tphp -q encoder.php some_file.php -o some_encoded_file.php\n"; echo "\tphp -q encoder.php *.php -o some_dir\n"; echo "\tphp -q encoder.php ~/public_html/x -rcf -sphp -sinc -o ~/public_html/y\n"; echo "\n"; exit();}function eaccelerator_error($str, $web) { if ($web) { global $web_error; $web_error = "ERROR: $str"; } else { echo "eAccelerator Encoder ERROR: $str\n"; }}function eaccelerator_encode_file($src, $out, $f, $c, $w, $web) { if (empty($out)) { echo "\n// $src\n"; } $prefix = ""; $cmp = eaccelerator_encode($src, $prefix); if (empty($cmp)) { eaccelerator_error("Can't compile file \"$src\"",$web); if ($f) { if ($c && !empty($out)) { if ($web) { global $web_error; if (!empty($web_error)) { echo "<font color=\"#ff0000\">$web_error</font><br>\n"; flush(); $web_error = ""; } } eaccelerator_copy_file($src, $out, $f, $web); } } else { if (!$web) { exit(); } } } else { if (!$w) { $cmp = $prefix.'<?php if (!is_callable("eaccelerator_load") && !@dl((PHP_OS=="WINNT"||PHP_OS=="WIN32")?"eloader.dll":"eloader.so")) { die("This PHP script has been encoded with eAccelerator, to run it you must install <a href=\"http://eaccelerator.sourceforge.net/\">eAccelerator or eLoader</a>");} return eaccelerator_load(\''.$cmp."');?>\n"; } else { $cmp = $prefix.'<?php return eaccelerator_load(\''.$cmp."');?>\n"; } if (!empty($out)) { if (!$f && file_exists($out)) { eaccelerator_error("Can't create output file \"$out\" (already exists)",$web); } else { $file = @fopen($out,"wb"); if (!$file) { eaccelerator_error("Can't open output file \"$out\"",$web); } else { fwrite($file,$cmp); unset($cmp); fclose($file); $stat = stat($src); chmod($out, $stat['mode']); if ($web) { echo "<font color=\"#00aa00\">Encoding: \"$src\" -> \"$out\"</font><br>\n"; } } } } else { if ($web) { echo "<pre>".htmlspecialchars($cmp)."</pre>\n"; } else { echo $cmp; } unset($cmp); } }}function eaccelerator_mkdir($dir, $f, $web) { if (!empty($dir)) { if (!@mkdir($dir,0777)) { if (!$f) { $error = "Can't create destination directory \"$dir\""; if (file_exists($dir)) { $error .= " (already exists)"; } eaccelerator_error($error, $web); return 0; } } } return 1;}function eaccelerator_copy_dir($src, $dir, $f, $web) { $stat = stat($src); $old = umask(0); $ret = eaccelerator_mkdir($dir, $f, $web); umask($old); return $ret;}function eaccelerator_copy_file($src, $out, $f, $web) { $i = @fopen($src, "rb"); if (!$i) { eaccelerator_error("Can't open file \"$src\" for copying",$web); return; } if (!$f && file_exists($out)) { eaccelerator_error("Can't create output file \"$out\" (already exists)"); } else { $o = @fopen($out, "wb"); if (!$o) { eaccelerator_error("Can't copy file into \"$out\""); return; } while ($tmp = fread($i, 1024*32)) { fwrite($o, $tmp); } fclose($i); fclose($o); $stat = stat($src); chmod($out, $stat['mode']); if ($web) { echo "<font color=\"#00aa00\">Copying: \"$src\" -> \"$out\"</font><br>\n"; } }}function eaccelerator_copy_link($src, $out, $f, $web) { $link = readlink($src); if (!@symlink($link,$out)) { if ($f && file_exists($out)) { unlink($out); eaccelerator_copy_link($src, $out, false, $web); } else if ($f && is_array(lstat($out))) { unlink($out); eaccelerator_copy_link($src, $out, false, $web); } else { eaccelerator_error("Can't create symlink \"$out\" -> \"$link\""); return; } }}function eaccelerator_encode_dir($src, $out, $s, $r, $l, $c, $f, $w, $web) { if ($dir = @opendir($src)) { while (($file = readdir($dir)) !== false) { if ($file == "." || $file == "..") continue; $i = "$src/$file"; $o = empty($out)?$out:"$out/$file"; if (is_link($i)) { if ($c && !empty($o)) { eaccelerator_copy_link($i, $o, $f, $web); if ($web) { global $web_error; if (!empty($web_error)) { echo "<font color=\"#ff0000\">$web_error</font><br>\n"; flush(); $web_error = ""; } } continue; } else if (!$l) { continue; } } if (is_dir($i)) { if ($r) { if (eaccelerator_copy_dir($i, $o, $f, $web)) { eaccelerator_encode_dir($i, $o, $s, $r, $l, $c, $f, $w, $web); } } } else if (is_file($i)) { if (empty($s)) { eaccelerator_encode_file($i, $o, $f, $c, $w, $web); } else if (is_string($s)) { if (preg_match("/".preg_quote(".$s")."\$/i", $file)) { eaccelerator_encode_file($i, $o, $f, $c, $w, $web); } else if (!empty($o) && $c) { eaccelerator_copy_file($i, $o, $f, $web); } } else if (is_array($s)) { $encoded = false; foreach($s as $z) { if (preg_match("/".preg_quote(".$z")."\$/i", $file)) { eaccelerator_encode_file($i, $o, $f, $c, $w, $web); $encoded = true; break; } } if (!$encoded && !empty($o) && $c) { eaccelerator_copy_file($i, $o, $f, $web); } } } if ($web) { global $web_error; if (!empty($web_error)) { echo "<font color=\"#ff0000\">$web_error</font><br>\n"; flush(); $web_error = ""; } } } closedir($dir); } else { eaccelerator_error("Can't open source directory \"$src\"", $web); }} 续....function eaccelerator_encoder_main() { $argc = $_SERVER['argc']; $argv = $_SERVER['argv']; $src = array(); $out = null; unset($s); $r = false; $l = false; $a = false; $c = false; $f = false; $w = false; for ($i = 1; $i < $argc; $i++) { $arg = $argv[$i]; if (!empty($arg)) { if ($arg[0] == '-') { if ($arg[1] == "o") { if (!empty($out)) { eaccelerator_encoder_usage(); } if (strlen($arg) == 2) { if ($argc <= $i || empty($argv[$i+1]) || $argv[$i+1][0] == "-") { eaccelerator_encoder_usage(); } $out = $argv[++$i]; } else { $out = substr($arg,2); } } else if ($arg[1] == "s") { if (strlen($arg) == 2) { $s[] = $argv[++$i]; } else { $s[] = substr($arg,2); } } else if (strlen($arg) == 2 && $arg[1] == "r") { $r = true; } else if (strlen($arg) == 2 && $arg[1] == "l") { $l = true; } else if (strlen($arg) == 2 && $arg[1] == "a") { $a = true; } else if (strlen($arg) == 2 && $arg[1] == "c") { $c = true; } else if (strlen($arg) == 2 && $arg[1] == "f") { $f = true; } else if (strlen($arg) == 2 && $arg[1] == "w") { $w = true; } else { $len = strlen($arg); if ($len > 1) { $n = 1; while ($n < $len) { if ($arg[$n] == "r") { $r = true; } else if ($arg[$n] == "l") { $l = true; } else if ($arg[$n] == "a") { $a = true; } else if ($arg[$n] == "c") { $c = true; } else if ($arg[$n] == "f") { $f = true; } else if ($arg[$n] == "w") { $w = true; } else { if ($arg[$n] != "o" && $arg[$n] != "s") { echo("eAccelerator Encoder ERROR: Unknown option \"-".$arg[$n]."\"\n\n"); } eaccelerator_encoder_usage(); } ++$n; } } else { echo("eAccelerator Encoder ERROR: Unknown option \"$arg\"\n\n"); eaccelerator_encoder_usage(); } } } else { $src[] = $arg; } } } if (isset($src) && is_array($src) && count($src) > 0) { $cnt = count($src); if ($a) { $s = ""; } else if (!isset($s)) { $s = "php"; } if ($cnt > 1) { if (!eaccelerator_mkdir($out, $f, 0)) { return; } } foreach($src as $file) { if (!file_exists($file)) { echo("eAccelerator Encoder ERROR: Source file \"$file\" doesn't exist.\n"); } else { if (is_dir($file)) { if ($cnt == 1) { if (eaccelerator_mkdir($out, $f, 0)) { eaccelerator_encode_dir($file, $out, $s, $r, $l, $c, $f, $w, 0); } } else { if (eaccelerator_copy_dir($file, $out."/".basename($file), $f, 0)) { eaccelerator_encode_dir($file, $out."/".basename($file), $s, $r, $l, $c, $f, $w, 0); } } } else { if ($cnt == 1) { eaccelerator_encode_file($file, $out, $f, $c, $w, 0); } else { if (empty($out)) { eaccelerator_encode_file($file, $out, $f, $c, $w, 0); } else { eaccelerator_encode_file($file, $out."/".basename($file), $f, $c, $w, 0); } } } } } } else { eaccelerator_encoder_usage(); }}function eaccelerator_encoder_web() { echo "<html><head><title>eAccelerator Encoder</title></head>". "<body><h1 align=\"center\">eAccelerator Encoder ".EACCELERATOR_VERSION."</h1>"; $error = ""; $source = ""; $target = ""; $s = "php"; $suffixies = "php"; if (isset($_POST["submit"])) { if (isset($_POST["source"])) { $source = $_POST["source"]; } if (isset($_POST["target"])) { $target = $_POST["target"]; } if (isset($_POST["suffixies"])) { $suffixies = $_POST["suffixies"]; if (strpos($suffixies,",") !== false) { $s = explode(",",$suffixies); } else { $s = $suffixies; } } $all = isset($_POST["all"])?$_POST["all"]:false; $links = isset($_POST["links"])?$_POST["links"]:false; $recursive = isset($_POST["recursive"])?$_POST["recursive"]:false; $copy = isset($_POST["copy"])?$_POST["copy"]:false; $force = isset($_POST["force"])?$_POST["force"]:false; $check = isset($_POST["check"])?$_POST["check"]:false; if (empty($source)) { $error = "ERROR: Source is not specified!"; } else if (!file_exists($source)) { $error = "ERROR: Source file \"$source\" doesn't exist.\n"; } else { if (is_dir($source)) { if (eaccelerator_mkdir($target, $force, 1)) { if ($all) { $s = ""; } eaccelerator_encode_dir($source, $target, $s, $recursive, $links, $copy, $force, $check, 1); } } else { eaccelerator_encode_file($source, $target, $force, $copy, $check, 1); } global $web_error; if (empty($web_error)) { echo "<br><b>DONE</b></html>"; return; } else { $error = $web_error; } } } echo "<h3 align=\"center\"><font color=\"#ff0000\">$error</font></h3>". "<form method=\"POST\">". "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"600\" bgcolor=\"#000000\" align=\"center\">". "<tr valign=\"baseline\" bgcolor=\"#cccccc\"><td width=\"50%\" bgcolor=\"#ccccff\"><b>Souce file or directory name:</b></td><td width=\"50%\"><input type=\"text\" name=\"source\" size=\"32\" value=\"$source\" style=\"width:100%\"></td></tr>". "<tr valign=\"baseline\" bgcolor=\"#cccccc\"><td width=\"50%\" bgcolor=\"#ccccff\"><b>Target file or directory name:</b></td><td width=\"50%\"><input type=\"text\" name=\"target\" size=\"32\" value=\"$target\" style=\"width:100%\"></td></tr>". "<tr valign=\"baseline\" bgcolor=\"#cccccc\"><td width=\"50%\" bgcolor=\"#ccccff\"><b>PHP suffixies <small>(comma separated list)</small>:</b></td><td width=\"50%\"><input type=\"text\" name=\"suffixies\" size=\"32\" value=\"$suffixies\" style=\"width:100%\"></td></tr>". "<tr valign=\"baseline\" bgcolor=\"#cccccc\"><td width=\"50%\" bgcolor=\"#ccccff\"><b>Options:</b></td><td width=\"50%\">". "<input type=\"checkbox\" id=\"all\" name=\"all\"".(empty($all)?"":" checked")."> - <label for=\"all\">encode all files</label><br>". "<input type=\"checkbox\" id=\"links\" name=\"links\"".(empty($links)?"":" checked")."> - <label for=\"links\">follow symbolic links</label><br>". "<input type=\"checkbox\" id=\"recursive\" name=\"recursive\"".(empty($recursive)?"":" checked")."> - <label for=\"recursive\">encode directories recursively</label><br>". "<input type=\"checkbox\" id=\"copy\" name=\"copy\"".(empty($copy)?"":" checked")."> - <label for=\"copy\">copy files those shouldn't be encoded</label><br>". "<input type=\"checkbox\" id=\"force\" name=\"force\"".(empty($force)?"":" checked")."> - <label for=\"force\">overwrite existing files</label><br>". "<input type=\"checkbox\" id=\"check\" name=\"check\"".(empty($check)?"":" checked")."> - <label for=\"check\">exclude eaccelerator_load() check</label><br>". "</td></tr>". "<tr><td colspan=\"2\" align=\"center\" bgcolor=\"#cccccc\"><input type=\"submit\" name=\"submit\" value=\"OK\" style=\"width:100px\"></td></tr>". "</form></body></html>";}set_time_limit(0);function is_cli() { if (php_sapi_name() == "cli" || empty($_SERVER['PHP_SELF'])) { return 1; } else { return 0; }}if (is_cli()) { if (!is_callable("eaccelerator_encode") && !(!extension_loaded("eAccelerator") && @dl((PHP_OS=="WINNT"||PHP_OS=="WIN32")?"eaccelerator.dll":"eaccelerator.so") && is_callable("eaccelerator_encode"))) { die("ERROR: eAccelerator Encoder is not installed\n"); } if (!isset($_SERVER['argc'])) { die("ERROR: Set \"register_argc_argv = On\" in your php.ini or use a CLI version of PHP to run encoder.\n"); } eaccelerator_encoder_main();} else { if (!is_callable("eaccelerator_encode") && !(!extension_loaded("eAccelerator") && @dl((PHP_OS=="WINNT"||PHP_OS=="WIN32")?"eaccelerator.dll":"eaccelerator.so") && is_callable("eaccelerator_encode"))) { die("<html><head><title>eAccelerator Encoder</title></head><body><h1 align=\"center\">eAccelerator Encoder is not installed</h1></body></html>"); } eaccelerator_encoder_web();}?>希望能帮到你Corsak http://www.corsak.com 谢谢tricolor。再问一句,encoder.php是不是不同的版本通用呀? 还是这个问题无法解决,提示说没有安装eAccelerator 请教一个php的input传值问题 xampp问题 [22-Jul-2010]版本的php 5.2.14 curl 函数有问题,大家发现了吗(windows) 求字符串均匀散列 简单方法 终于接到一个大大大大单子了 如何保持地址栏地址内容不变,而实际的URL已经改变 php页面无权限访问 关于编码的问题,大虾指教了 ajax get请求得到了一个json格式的数据,在js中怎么遍历出来 求解最接近销售额的一个算法问题 我一直觉得PHP不适合oop,不知道各位怎么看 帮忙解决下PHP错误,急急急!
“eAccelerator 包含一个 Php 编码器和加载器。您可以使用编码器对 .Php 脚本进行编码,从而能够以非源代码方式发布您的 Php 程序。”
怎样操作才能得到编码后的php文件?
@ECHO OFF
@echo - 编译php代码
@echo --------------------if exist php.exe GOTO Normal
:Normal
set PHP_BIN=php.exe
%PHP_BIN% -q encoder.php d:\project\php\myproject\www -rcf -sphp -sinc -o d:\release\myproject\www@echo - 编译结束
@echo ----------
pause2. 你下载eAccelerator时有附有一个encoder.php文件的. 如果没有, 请新建一个,内容如下:<?php
$web_error = "";function eaccelerator_encoder_usage() {
echo "Usage:\tphp -q encoder.php [options] source_file_name\n";
echo "\tphp -q encoder.php [options] source_file_name...\n";
echo "\tphp -q encoder.php [options] source_directory_name...\n\n";
echo "Options:\n";
echo "\t-s suffix\n\t\tencode files only with following suffix (default is \"php\")\n";
echo "\t-a\n\t\tencode all files (no by default)\n";
echo "\t-l\n\t\tfollow symbolic links (no by default)\n";
echo "\t-r\n\t\tencode directories recursively (no by default)\n";
echo "\t-c\n\t\tcopy files those shouldn't be encoded (no by default)\n";
echo "\t-f\n\t\toverwrite existing files (no by default)\n";
echo "\t-w\n\t\texclude check for eaccelerator_load() and subsequent warning\n";
echo "\t-o target\n\t\tIf you encode only one script then 'target' specifyes an output\n";
echo "\t\tfile name. If you encode directory or several files at once\n";
echo "\t\tthen 'target' specifyes an output directory name.\n";
echo "\nExamples:\n";
echo "\tphp -q encoder.php some_file.php\n";
echo "\tphp -q encoder.php some_file.php -o some_encoded_file.php\n";
echo "\tphp -q encoder.php *.php -o some_dir\n";
echo "\tphp -q encoder.php ~/public_html/x -rcf -sphp -sinc -o ~/public_html/y\n";
echo "\n";
exit();
}function eaccelerator_error($str, $web) {
if ($web) {
global $web_error;
$web_error = "ERROR: $str";
} else {
echo "eAccelerator Encoder ERROR: $str\n";
}
}function eaccelerator_encode_file($src, $out, $f, $c, $w, $web) {
if (empty($out)) {
echo "\n// $src\n";
}
$prefix = "";
$cmp = eaccelerator_encode($src, $prefix);
if (empty($cmp)) {
eaccelerator_error("Can't compile file \"$src\"",$web);
if ($f) {
if ($c && !empty($out)) {
if ($web) {
global $web_error;
if (!empty($web_error)) {
echo "<font color=\"#ff0000\">$web_error</font><br>\n"; flush();
$web_error = "";
}
}
eaccelerator_copy_file($src, $out, $f, $web);
}
} else {
if (!$web) {
exit();
}
}
} else {
if (!$w) {
$cmp = $prefix.'<?php if (!is_callable("eaccelerator_load") && !@dl((PHP_OS=="WINNT"||PHP_OS=="WIN32")?"eloader.dll":"eloader.so")) { die("This PHP script has been encoded with eAccelerator, to run it you must install <a href=\"http://eaccelerator.sourceforge.net/\">eAccelerator or eLoader</a>");} return eaccelerator_load(\''.$cmp."');?>\n";
}
else
{
$cmp = $prefix.'<?php return eaccelerator_load(\''.$cmp."');?>\n";
}
if (!empty($out)) {
if (!$f && file_exists($out)) {
eaccelerator_error("Can't create output file \"$out\" (already exists)",$web);
} else {
$file = @fopen($out,"wb");
if (!$file) {
eaccelerator_error("Can't open output file \"$out\"",$web);
} else {
fwrite($file,$cmp);
unset($cmp);
fclose($file);
$stat = stat($src);
chmod($out, $stat['mode']);
if ($web) {
echo "<font color=\"#00aa00\">Encoding: \"$src\" -> \"$out\"</font><br>\n";
}
}
}
} else {
if ($web) {
echo "<pre>".htmlspecialchars($cmp)."</pre>\n";
} else {
echo $cmp;
}
unset($cmp);
}
}
}function eaccelerator_mkdir($dir, $f, $web) {
if (!empty($dir)) {
if (!@mkdir($dir,0777)) {
if (!$f) {
$error = "Can't create destination directory \"$dir\"";
if (file_exists($dir)) {
$error .= " (already exists)";
}
eaccelerator_error($error, $web);
return 0;
}
}
}
return 1;
}function eaccelerator_copy_dir($src, $dir, $f, $web) {
$stat = stat($src);
$old = umask(0);
$ret = eaccelerator_mkdir($dir, $f, $web);
umask($old);
return $ret;
}function eaccelerator_copy_file($src, $out, $f, $web) {
$i = @fopen($src, "rb");
if (!$i) {
eaccelerator_error("Can't open file \"$src\" for copying",$web);
return;
}
if (!$f && file_exists($out)) {
eaccelerator_error("Can't create output file \"$out\" (already exists)");
} else {
$o = @fopen($out, "wb");
if (!$o) {
eaccelerator_error("Can't copy file into \"$out\"");
return;
}
while ($tmp = fread($i, 1024*32)) {
fwrite($o, $tmp);
}
fclose($i);
fclose($o);
$stat = stat($src);
chmod($out, $stat['mode']);
if ($web) {
echo "<font color=\"#00aa00\">Copying: \"$src\" -> \"$out\"</font><br>\n";
}
}
}function eaccelerator_copy_link($src, $out, $f, $web) {
$link = readlink($src);
if (!@symlink($link,$out)) {
if ($f && file_exists($out)) {
unlink($out);
eaccelerator_copy_link($src, $out, false, $web);
} else if ($f && is_array(lstat($out))) {
unlink($out);
eaccelerator_copy_link($src, $out, false, $web);
} else {
eaccelerator_error("Can't create symlink \"$out\" -> \"$link\"");
return;
}
}
}function eaccelerator_encode_dir($src, $out, $s, $r, $l, $c, $f, $w, $web) {
if ($dir = @opendir($src)) {
while (($file = readdir($dir)) !== false) {
if ($file == "." || $file == "..") continue;
$i = "$src/$file";
$o = empty($out)?$out:"$out/$file";
if (is_link($i)) {
if ($c && !empty($o)) {
eaccelerator_copy_link($i, $o, $f, $web);
if ($web) {
global $web_error;
if (!empty($web_error)) {
echo "<font color=\"#ff0000\">$web_error</font><br>\n"; flush();
$web_error = "";
}
}
continue;
} else if (!$l) {
continue;
}
}
if (is_dir($i)) {
if ($r) {
if (eaccelerator_copy_dir($i, $o, $f, $web)) {
eaccelerator_encode_dir($i, $o, $s, $r, $l, $c, $f, $w, $web);
}
}
} else if (is_file($i)) {
if (empty($s)) {
eaccelerator_encode_file($i, $o, $f, $c, $w, $web);
} else if (is_string($s)) {
if (preg_match("/".preg_quote(".$s")."\$/i", $file)) {
eaccelerator_encode_file($i, $o, $f, $c, $w, $web);
} else if (!empty($o) && $c) {
eaccelerator_copy_file($i, $o, $f, $web);
}
} else if (is_array($s)) {
$encoded = false;
foreach($s as $z) {
if (preg_match("/".preg_quote(".$z")."\$/i", $file)) {
eaccelerator_encode_file($i, $o, $f, $c, $w, $web);
$encoded = true;
break;
}
}
if (!$encoded && !empty($o) && $c) {
eaccelerator_copy_file($i, $o, $f, $web);
}
}
}
if ($web) {
global $web_error;
if (!empty($web_error)) {
echo "<font color=\"#ff0000\">$web_error</font><br>\n"; flush();
$web_error = "";
}
}
}
closedir($dir);
} else {
eaccelerator_error("Can't open source directory \"$src\"", $web);
}
}
$argc = $_SERVER['argc'];
$argv = $_SERVER['argv']; $src = array();
$out = null;
unset($s);
$r = false;
$l = false;
$a = false;
$c = false;
$f = false;
$w = false; for ($i = 1; $i < $argc; $i++) {
$arg = $argv[$i];
if (!empty($arg)) {
if ($arg[0] == '-') {
if ($arg[1] == "o") {
if (!empty($out)) {
eaccelerator_encoder_usage();
}
if (strlen($arg) == 2) {
if ($argc <= $i || empty($argv[$i+1]) || $argv[$i+1][0] == "-") {
eaccelerator_encoder_usage();
}
$out = $argv[++$i];
} else {
$out = substr($arg,2);
} } else if ($arg[1] == "s") {
if (strlen($arg) == 2) {
$s[] = $argv[++$i];
} else {
$s[] = substr($arg,2);
}
} else if (strlen($arg) == 2 && $arg[1] == "r") {
$r = true;
} else if (strlen($arg) == 2 && $arg[1] == "l") {
$l = true;
} else if (strlen($arg) == 2 && $arg[1] == "a") {
$a = true;
} else if (strlen($arg) == 2 && $arg[1] == "c") {
$c = true;
} else if (strlen($arg) == 2 && $arg[1] == "f") {
$f = true;
} else if (strlen($arg) == 2 && $arg[1] == "w") {
$w = true;
} else {
$len = strlen($arg);
if ($len > 1) {
$n = 1;
while ($n < $len) {
if ($arg[$n] == "r") {
$r = true;
} else if ($arg[$n] == "l") {
$l = true;
} else if ($arg[$n] == "a") {
$a = true;
} else if ($arg[$n] == "c") {
$c = true;
} else if ($arg[$n] == "f") {
$f = true;
} else if ($arg[$n] == "w") {
$w = true;
} else {
if ($arg[$n] != "o" && $arg[$n] != "s") {
echo("eAccelerator Encoder ERROR: Unknown option \"-".$arg[$n]."\"\n\n");
}
eaccelerator_encoder_usage();
}
++$n;
}
} else {
echo("eAccelerator Encoder ERROR: Unknown option \"$arg\"\n\n");
eaccelerator_encoder_usage();
}
}
} else {
$src[] = $arg;
}
}
}
if (isset($src) && is_array($src) && count($src) > 0) {
$cnt = count($src);
if ($a) {
$s = "";
} else if (!isset($s)) {
$s = "php";
}
if ($cnt > 1) {
if (!eaccelerator_mkdir($out, $f, 0)) {
return;
}
}
foreach($src as $file) {
if (!file_exists($file)) {
echo("eAccelerator Encoder ERROR: Source file \"$file\" doesn't exist.\n");
} else {
if (is_dir($file)) {
if ($cnt == 1) {
if (eaccelerator_mkdir($out, $f, 0)) {
eaccelerator_encode_dir($file, $out, $s, $r, $l, $c, $f, $w, 0);
}
} else {
if (eaccelerator_copy_dir($file, $out."/".basename($file), $f, 0)) {
eaccelerator_encode_dir($file, $out."/".basename($file), $s, $r, $l, $c, $f, $w, 0);
}
}
if ($cnt == 1) {
eaccelerator_encode_file($file, $out, $f, $c, $w, 0);
} else {
if (empty($out)) {
eaccelerator_encode_file($file, $out, $f, $c, $w, 0);
} else {
eaccelerator_encode_file($file, $out."/".basename($file), $f, $c, $w, 0);
}
}
}
}
}
} else {
eaccelerator_encoder_usage();
}
}function eaccelerator_encoder_web() {
echo "<html><head><title>eAccelerator Encoder</title></head>".
"<body><h1 align=\"center\">eAccelerator Encoder ".EACCELERATOR_VERSION."</h1>";
$error = "";
$source = "";
$target = "";
$s = "php";
$suffixies = "php";
if (isset($_POST["submit"])) {
if (isset($_POST["source"])) {
$source = $_POST["source"];
}
if (isset($_POST["target"])) {
$target = $_POST["target"];
}
if (isset($_POST["suffixies"])) {
$suffixies = $_POST["suffixies"];
if (strpos($suffixies,",") !== false) {
$s = explode(",",$suffixies);
} else {
$s = $suffixies;
}
}
$all = isset($_POST["all"])?$_POST["all"]:false;
$links = isset($_POST["links"])?$_POST["links"]:false;
$recursive = isset($_POST["recursive"])?$_POST["recursive"]:false;
$copy = isset($_POST["copy"])?$_POST["copy"]:false;
$force = isset($_POST["force"])?$_POST["force"]:false;
$check = isset($_POST["check"])?$_POST["check"]:false;
if (empty($source)) {
$error = "ERROR: Source is not specified!";
} else if (!file_exists($source)) {
$error = "ERROR: Source file \"$source\" doesn't exist.\n";
} else {
if (is_dir($source)) {
if (eaccelerator_mkdir($target, $force, 1)) {
if ($all) {
$s = "";
}
eaccelerator_encode_dir($source, $target, $s, $recursive, $links, $copy, $force, $check, 1);
}
} else {
eaccelerator_encode_file($source, $target, $force, $copy, $check, 1);
}
global $web_error;
if (empty($web_error)) {
echo "<br><b>DONE</b></html>";
return;
} else {
$error = $web_error;
}
}
}
echo "<h3 align=\"center\"><font color=\"#ff0000\">$error</font></h3>".
"<form method=\"POST\">".
"<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"600\" bgcolor=\"#000000\" align=\"center\">".
"<tr valign=\"baseline\" bgcolor=\"#cccccc\"><td width=\"50%\" bgcolor=\"#ccccff\"><b>Souce file or directory name:</b></td><td width=\"50%\"><input type=\"text\" name=\"source\" size=\"32\" value=\"$source\" style=\"width:100%\"></td></tr>".
"<tr valign=\"baseline\" bgcolor=\"#cccccc\"><td width=\"50%\" bgcolor=\"#ccccff\"><b>Target file or directory name:</b></td><td width=\"50%\"><input type=\"text\" name=\"target\" size=\"32\" value=\"$target\" style=\"width:100%\"></td></tr>".
"<tr valign=\"baseline\" bgcolor=\"#cccccc\"><td width=\"50%\" bgcolor=\"#ccccff\"><b>PHP suffixies <small>(comma separated list)</small>:</b></td><td width=\"50%\"><input type=\"text\" name=\"suffixies\" size=\"32\" value=\"$suffixies\" style=\"width:100%\"></td></tr>". "<tr valign=\"baseline\" bgcolor=\"#cccccc\"><td width=\"50%\" bgcolor=\"#ccccff\"><b>Options:</b></td><td width=\"50%\">".
"<input type=\"checkbox\" id=\"all\" name=\"all\"".(empty($all)?"":" checked")."> - <label for=\"all\">encode all files</label><br>".
"<input type=\"checkbox\" id=\"links\" name=\"links\"".(empty($links)?"":" checked")."> - <label for=\"links\">follow symbolic links</label><br>".
"<input type=\"checkbox\" id=\"recursive\" name=\"recursive\"".(empty($recursive)?"":" checked")."> - <label for=\"recursive\">encode directories recursively</label><br>".
"<input type=\"checkbox\" id=\"copy\" name=\"copy\"".(empty($copy)?"":" checked")."> - <label for=\"copy\">copy files those shouldn't be encoded</label><br>".
"<input type=\"checkbox\" id=\"force\" name=\"force\"".(empty($force)?"":" checked")."> - <label for=\"force\">overwrite existing files</label><br>".
"<input type=\"checkbox\" id=\"check\" name=\"check\"".(empty($check)?"":" checked")."> - <label for=\"check\">exclude eaccelerator_load() check</label><br>".
"</td></tr>".
"<tr><td colspan=\"2\" align=\"center\" bgcolor=\"#cccccc\"><input type=\"submit\" name=\"submit\" value=\"OK\" style=\"width:100px\"></td></tr>".
"</form></body></html>";
}set_time_limit(0);function is_cli() {
if (php_sapi_name() == "cli" || empty($_SERVER['PHP_SELF'])) {
return 1;
} else {
return 0;
}
}if (is_cli()) {
if (!is_callable("eaccelerator_encode") && !(!extension_loaded("eAccelerator") && @dl((PHP_OS=="WINNT"||PHP_OS=="WIN32")?"eaccelerator.dll":"eaccelerator.so") && is_callable("eaccelerator_encode"))) {
die("ERROR: eAccelerator Encoder is not installed\n");
}
if (!isset($_SERVER['argc'])) {
die("ERROR: Set \"register_argc_argv = On\" in your php.ini or use a CLI version of PHP to run encoder.\n");
}
eaccelerator_encoder_main();
} else {
if (!is_callable("eaccelerator_encode") && !(!extension_loaded("eAccelerator") && @dl((PHP_OS=="WINNT"||PHP_OS=="WIN32")?"eaccelerator.dll":"eaccelerator.so") && is_callable("eaccelerator_encode"))) {
die("<html><head><title>eAccelerator Encoder</title></head><body><h1 align=\"center\">eAccelerator Encoder is not installed</h1></body></html>");
}
eaccelerator_encoder_web();
}
?>希望能帮到你Corsak http://www.corsak.com