注明这款php教程文件压缩代码他要借助于zip.exe文件哦,所以我们要把zip.exe压缩文件给拿出来哦。
<?php
if ( !IsSet($_GET['dirname']) )
{
show_input_form() ;
}
else
{
// check if empty
if ( empty($_GET['dirname']) )
{
hg_exit("请输入文件夹名!") ;
}
// check valid dirname
if ( FALSE !== strpos($_GET['dirname'], "/") )
{
hg_exit(""/" 是非法的文件夹名!") ;
}
if ( FALSE !== strstr($_GET['dirname'], "..") )
{
hg_exit("".." 是非法的文件夹名!") ;
}
// check valid dir
if ( !is_dir($_GET['dirname']) )
{
hg_exit(""{$_GET['dirname']}" 不是一个有效的文件夹!") ;
}
$szData = "" ;
$szInfo = "" ;
$file_count = @ZipDir($_GET['dirname'], &$szData, &$szInfo) ;
$info_size_16byte = @sprintf("%016d", @strlen($szInfo)) ;
$szData = @sprintf("%016d",$file_count) . $info_size_16byte . $szInfo . $szData ;
$filename = $_GET['dirname'] . ".dat" ;
if ( function_exists(gzencode) )
{
$szData = gzencode($szData) ;
$filename .= ".gz" ;
}
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: " . strlen($szData));
Header("Content-Disposition: attachment; filename=$filename");
echo $szData ;
}
function show_input_form()
{
echo HtmlHead("文件打包") ;
echo "<form name="input">n"
. "请输入要打包的文件夹,注意,仅当前目录下的文件夹才可以下载!<p>n"
. "<input name="dirname">n"
. "<input type="button" value="确定" onClick="show_download_link(dirname.value);">n"
. "</form>n" ;
echo "<script>n"
. "input.dirname.focus();n"
. "function show_download_link(dir)n"
. "{"
. " var top = (screen.height-200)/2 ;n"
. " var left = (screen.width-300)/2 ;n"
. " newwin=window.open('', '', 'width=300,height=200,top=' + top + ',left=' + left + ', resizable=0,scrollbars=auto');n"
. " url = "{$_SERVER['PHP_SELF']}" + "?dirname=" + dir ;n"
. " newwin.document.write('<a href=' + url + '>点击此链接下载,<br>或者右键点击此处选择"另存为"</a>');n"
. "}"
. "</script>n" ;
echo HtmlFoot() ;
}
function ZipDir($szDirName, &$szData, &$szInfo)
{
// write dir header
$szInfo .= "$szDirName|[dir]n" ;
$file_count = 0 ;
$hDir = OpenDir($szDirName) ;
while ( $file = ReadDir($hDir) )
{
if ( $file=="." || $file==".." ) continue ;
$szCurFile = "$szDirName/$file" ;
if ( Is_Dir($szCurFile) )
{
$file_count += ZipDir($szCurFile, &$szData, &$szInfo) ;
}
else if ( Is_File($szCurFile) )
{
$hCurFile = fopen($szCurFile, "rb") ;
$size = filesize($szCurFile) ;
$szStream = fread( $hCurFile, $size ) ;
fclose($hCurFile) ;
$file_count++ ;
// write info
$szInfo .= "$szCurFile|$sizen" ;
// write data
$szData .= $szStream ;
}
}
// write dir footer
$szInfo .= "$szDirName|[/dir]n" ;
return $file_count ;
}
function hg_exit($str)
{
echo HtmlHead("Error, exit!") ;
echo "<h5>" . $str . "</h5>" ;
echo HtmlFoot() ;
exit ;
}
function HtmlHead($title)
{
return "<html>nn<head>n"
. "<meta http-equiv="Content-Type" content="text/html; charset=gb2312">n"
. "<style type="text/css教程">n"
. "body,input,td{font:12px verdana}n"
. "</style>n"
. "</head>nn<body>nn" ;
}
function HtmlFoot()
{
return Copyright() . "n</body>nn</html>" ;
}
function Copyright()
{
return "<center><font size="5" face="楷体_GB2312" color="red">使用完请立即删除本文件,以避免被其它人发现使用!</font></center>n"
. "<br><hr color="#003388">n"
. "<center>n"
. "<p style="font-family:verdana; font-size:12px">Contact us: n"
. "<a href="http://www.111cn.net/" target="_blank">http://www.111cn.net/</a></p>n"
. "</center>n"
. "</body>n"
. "n"
. "</html>" ;
}
?>
PHP3 Cryption是一个非常容易被破解,不安全的加密功能,不应该是非常重要的东西用。虽然加密是好的,它不会阻碍对尖端开裂程序的严格考验。
不过,试试吧...这是一个伟大的方式来加密和解密字符串。与许多隐窝功能,这是双向的。基于一个密码,您可以加密或解密。您也可以解密或加密过无数次,通过循环或其他方法。字母表中的字符也是变化的。所有这些事情让你修改和巩固加密。
关于这最佳的部分?您可以加密与解密或一张纸和一支铅笔一块。这需要相当长一点,但你并不需要一台电脑是附近使用它,如果你曾经失去的代码,如果你还记得你的技术可以解密。
我写在约一小时这些功能,经过几次不成功的和令人沮丧的尝试,并获得了更长的时间我没有出路的。成功的那天后的最佳方式做它突然实现。
请注意,这不会加密/解密无形字符(空格),如换行符(n)或标签(吨)!很抱歉,但我尝试。如果你找到一个办法,请让我知道!
* /
highlight_file(“crypto.php教程”);
代码如下 |
复制代码 |
$ralphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !,.:;?~@#$%^&*()_+-=][}{/><"'";
$alphabet = $ralphabet . $ralphabet;
class Crypto {
function encrypt ($password,$strtoencrypt) {
global $ralphabet;
global $alphabet;
for( $i=0; $i<strlen($password); $i++ )
{
$cur_ps教程wd_ltr = substr($password,$i,1);
$pos_alpha_ary[] = substr(strstr($alphabet,$cur_pswd_ltr),0,strlen($ralphabet));
}
$i=0;
$n = 0;
$nn = strlen($password);
$c = strlen($strtoencrypt);
while($i<$c)
{
$encrypted_string .= substr($pos_alpha_ary[$n],strpos($ralphabet,substr($strtoencrypt,$i,1)),1);
$n++;
if($n==$nn) $n = 0;
$i++;
}
return $encrypted_string;
}
function decrypt ($password,$strtodecrypt) {
global $ralphabet;
global $alphabet;
for( $i=0; $i<strlen($password); $i++ )
{
$cur_pswd_ltr = substr($password,$i,1);
$pos_alpha_ary[] = substr(strstr($alphabet,$cur_pswd_ltr),0,strlen($ralphabet));
}
$i=0;
$n = 0;
$nn = strlen($password);
$c = strlen($strtodecrypt);
while($i<$c)
{
$decrypted_string .= substr($ralphabet,strpos($pos_alpha_ary[$n],substr($strtodecrypt,$i,1)),1);
$n++;
if($n==$nn) $n = 0;
$i++;
}
return $decrypted_string;
}
function cryption_table ($password) {
global $ralphabet;
global $alphabet;
for( $i=0; $i<strlen($password); $i++ )
{
$cur_pswd_ltr = substr($password,$i,1);
$pos_alpha_ary[] = substr(strstr($alphabet,$cur_pswd_ltr),0,strlen($ralphabet));
}
print "<table border=1 cellpadding="0" cellspacing="0">n";
print "<tr><td></td>";
for( $j=0; $j<strlen($ralphabet); $j++ )
{
print "<td align="center"><font size="2" face="arial">" . substr($ralphabet,$j,1) . "</td>n";
}
print "</tr>";
for( $i=0; $i<count($pos_alpha_ary); $i++ )
{
print "<tr><td align="right"><font size="2"><b>" . ($i+1) . "|</b></font></td>";
for( $k=0; $k<strlen($pos_alpha_ary[$i]); $k++ )
{
print "<td align="center"><font size="2" face="arial">" . substr($pos_alpha_ary[$i],$k,1) . "</td>n";
}
print "</tr>";
}
print "</table>n";
}
} // end class Crypto
// Example written by Macro Zeng
// 网络技术主管座右铭:三人行其必有我师焉。http://www.111cn.net
$ct = new Crypto;
//$ct->cryption_table($password);
echo "<form action=$PHP_SELF method=post>";
if ($mod == 2) {
$strtodecrypt = $ct->encrypt ($password,$strtoencrypt);
echo 'Encrypted String(加密后的字段): ';
echo "<input type=text name=strtodecrypt size=45 value=$strtodecrypt>
";
echo "密码锁: <input type=text name=password size=6 value=$password>";
echo "<input type=submit value="Decrypt(解密)">";
}
else {
$strtoencrypt = $ct->decrypt ($password,$strtodecrypt);
echo 'String to Encrypt(需要加密的字段): ';
echo "<input type=text name=strtoencrypt size=45 value=$strtoencrypt>
";
echo "密码锁: <input type=text name=password size=6 value=$password>";
echo "<input type=submit value="Encrypt(加密)">";
echo "<input type=hidden name=mod value=2>";
}
echo "</form>";
|
一、如何不能创建可以设置目录的权限一盘0777就可以,用程序改变目录权限用chmod
二、用ftp
三、用服务器权限就更好办了,
在php中创建目录我们会用到mkdir() 函数来创建目录
*/
代码如下 |
复制代码 |
$dir = "abc";
if( mkdir($dir,0777))
{
echo '目录'.$dir.'成功创建';
}
else
{
echo '创建目录失败,请检查权限';
} |
/*
代码如下 |
复制代码 |
mkdir函数说明
mkdir(path,mode,recursive,context)
path 必需。创建的目录的名称。
mode 必需。默认是 0777。
recursive 必需。设置递归模式。
context 必需。规定文件句柄的环境。 |
mkdir相关实例
http://www.111cn.net/phper/24/mkdir-05.htm
无法创建文件夹原因分析
一、如何不能创建可以设置目录的权限一盘0777就可以,用程序改变目录权限用chmod
二、用ftp
三、用服务器权限就更好办了,
umask是0777的时候,当然是这样,自己手动用chmod改一下不就行了
chmod函数说明
chmod(file,mode)
如:
chmod("/somedir/somefile", 0755);
chmod相关实例
http://www.111cn.net/phper/24/chmod-php.htm
http://www.111cn.net/phper/24/ad7d09f46fce96a82f06fe711adeb47b.htm
本篇教程是一款关于用php写 ftp文件上传函数教程哦,php功能很强大,可以用他自身带的函数来实例ftp的功能,实现文件上传功能哦
代码如下 |
复制代码 |
<?
function phpftp_top() {
echo "<!-- function phpftp_top --> ";
echo "<html> ";
echo "<head> ";
echo "<title>PHP FTP Client v1.4</title> ";
echo "</head> ";
echo "<body bgcolor="#ffffff"> ";
echo "<font face="courier"> ";
}
function phpftp_bottom() {
echo " <!-- function phpftp_bottom --> ";
echo "</font> ";
echo "</body> ";
echo "</html> ";
}
function phpftp_login() {
phpftp_top();
echo "<!-- function phpftp_login --> ";
echo "<p> ";
echo "<form action="ftp.php3" method=post> ";
echo "Login: ";
echo "<input name="phpftp_user" type="text"> ";
echo "<p> ";
echo "Password: ";
echo "<input name="phpftp_passwd" type="password"> ";
echo "<p> ";
echo "Directory: ";
echo "<input name="phpftp_dir" type="text"> ";
echo "<p> ";
echo "<input type="hidden" name="function" value="dir"> ";
echo "<input type="submit" value="connect"> ";
echo "</form> ";
echo "<p> ";
phpftp_bottom();
}
/* This function does not return TRUE/FALSE - it returns the value of
$ftp, the current FTP stream. */
function phpftp_connect( $phpftp_user, $phpftp_passwd ) {
$phpftp_host="localhost";
$ftp = ftp_connect( $phpftp_host );
if ( $ftp ) {
if ( ftp_login( $ftp, $phpftp_user, $phpftp_passwd ) ) {
return $ftp;
}
}
}
function phpftp_list( $phpftp_user, $phpftp_passwd, $phpftp_dir ) {
phpftp_top();
echo "<!-- function phpftp_list --> ";
$ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd );
if ( ! $ftp ) {
echo "<strong>FTP login failed!</strong> ";
echo "<a href="ftp.php3">Start over?</a> ";
phpftp_bottom();
} else {
if ( ! $phpftp_dir ) {
$phpftp_dir=ftp_pwd( $ftp );
}
if ( ! @ftp_chdir( $ftp, $phpftp_dir ) ) {
echo "<font color="#ff0000"><strong>Can't enter that directory!</strong></font><p><p> ";
$phpftp_dir=ftp_pwd( $ftp );
}
echo "<strong>Current directory:</strong> " . $phpftp_dir . "
";
if ( $phpftp_dir == "/" ) {
$phpftp_dir="";
}
echo "<table border=0 cellspacing=20> ";
if ( $contents = ftp_nlist( $ftp, "." ) ) {
$d_i=0;
$f_i=0;
sort($contents);
for ( $i=0; $i < count( $contents ); $i++ ) {
$file_size = ftp_size( $ftp, $contents[$i] );
if ( $file_size == -1 ) {
$nlist_dirs[$d_i]=$contents[$i];
$d_i++;
} else {
$nlist_files[$f_i]=$contents[$i];
$nlist_filesize[$f_i]=$file_size;
$f_i++;
}
}
echo "<tr><td> ";
echo "<font face="courier"><strong>Directories</strong></font>
";
echo "<form action="ftp.php3" method=post> ";
echo "<input type="hidden" name="function" value="cd"> ";
echo "<input type="hidden" name="phpftp_user" value="" . $phpftp_user . ""> ";
echo "<input type="hidden" name="phpftp_passwd" value="" . $phpftp_passwd . ""> ";
echo "<input type="hidden" name="phpftp_dir" value="" . $phpftp_dir . ""> ";
echo "<select name="select_directory" size="10" width="100"> ";
for ( $i=0; $i < count( $nlist_dirs ); $i++ ) {
echo "<option value="" . $nlist_dirs[$i] . "">" . $nlist_dirs[$i] . "</option> ";
}
echo "</select>
";
echo "<input type="submit" value="Enter Directory"> ";
echo "</form> ";
echo "</td><td> ";
echo "<font face="courier"><strong>Files</strong></font>
";
echo "<form action="ftp.php3" method=post> ";
echo "<input type="hidden" name="function" value="get"> ";
echo "<input type="hidden" name="phpftp_user" value="" . $phpftp_user . ""> ";
echo "<input type="hidden" name="phpftp_passwd" value="" . $phpftp_passwd . ""> ";
echo "<input type="hidden" name="phpftp_dir" value="" . $phpftp_dir . ""> ";
echo "<select name="select_file" size="10"> ";
for ( $i=0; $i < count( $nlist_files ); $i++ ) {
echo "<option value="" . $nlist_files[$i] . "">" . $nlist_files[$i] ." ($nlist_filesize[$i] bytes)". "</option> ";
}
echo "</select>
";
echo "<input type="submit" value="Download File"> ";
echo "</form> ";
echo "</td></tr> ";
} else {
echo "<p><font color="#ff0000"><strong>Directory empty or not readable</strong></font><p> ";
}
echo "</table> ";
echo "<p> ";
echo "<form action="ftp.php3" method=post> ";
$cdup=dirname( $phpftp_dir );
if ( $cdup == "" ) {
$cdup="/";
}
echo "<input type="hidden" name="function" value="dir"> ";
echo "<input type="hidden" name="phpftp_user" value="" . $phpftp_user . ""> ";
echo "<input type="hidden" name="phpftp_passwd" value="" . $phpftp_passwd . ""> ";
echo "<input type="hidden" name="phpftp_dir" value="" . $cdup . ""> ";
echo "<input type="submit" value="Go up one directory"> ";
echo "</form> ";
echo "<p> ";
echo "<form enctype="multipart/form-data" action="ftp.php3" method=post> ";
echo "<input type="hidden" name="max_file_size" value="1000000"> ";
echo "<input type="hidden" name="phpftp_user" value="" . $phpftp_user . ""> ";
echo "<input type="hidden" name="phpftp_passwd" value="" . $phpftp_passwd . ""> ";
echo "<input type="hidden" name="phpftp_dir" value="" . $phpftp_dir . ""> ";
echo "<input type="hidden" name="function" value="put"> ";
echo "<input type="submit" value="Upload this:"> ";
echo "<input name="userfile" type="file"> ";
echo "</form> ";
echo "<p> ";
echo "<form action="ftp.php3" method=post> ";
echo "<input type="hidden" name="function" value="mkdir"> ";
echo "<input type="hidden" name="phpftp_user" value="" . $phpftp_user . ""> ";
echo "<input type="hidden" name="phpftp_passwd" value="" . $phpftp_passwd . ""> ";
echo "<input type="hidden" name="phpftp_dir" value="" . $phpftp_dir . ""> ";
echo "<input type="submit" value="Make subdirectory:"> ";
echo "<input name="new_dir" type="text"> ";
ftp_quit( $ftp );
phpftp_bottom();
}
}
function phpftp_cd( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_directory ) {
echo "<!-- function phpftp_cd --> ";
$new_directory=$phpftp_dir . "/" . $select_directory;
phpftp_list( $phpftp_user, $phpftp_passwd, $new_directory );
}
function phpftp_mkdir( $phpftp_user, $phpftp_passwd, $phpftp_dir, $new_dir ) {
echo "<!-- function phpftp_mkdir --> ";
$ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd );
if ( $phpftp_dir == "" ) {
$phpftp_dir="/";
}
if ( ! $ftp ) {
@ftp_quit( $ftp );
phpftp_top();
echo "<font color="#ff0000"><strong>FTP login failed!</strong></font><p><p> ";
echo "<a href="ftp.php3">Start over?</a> ";
phpftp_bottom();
} else {
$dir_path = $phpftp_dir . "/" . $new_dir;
@ftp_mkdir( $ftp, $dir_path );
@ftp_quit( $ftp );
phpftp_list( $phpftp_user, $phpftp_passwd, $phpftp_dir );
}
};
function phpftp_get( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_file ) {
$ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd );
if ( $phpftp_dir == "" ) {
$phpftp_dir="/";
}
if ( ( ! $ftp ) || ( ! @ftp_chdir( $ftp, $phpftp_dir ) ) ) {
@ftp_quit( $ftp );
phpftp_top();
echo "<font color="#ff0000"><strong>FTP login failed!</strong></font><p><p> ";
echo "<a href="ftp.php3">Start over?</a> ";
phpftp_bottom();
} else {
srand((double)microtime()*1000000);
$randval = rand();
$tmpfile="/var/tmp/xfers/" . $select_file . "." . $randval;
if ( ! ftp_get( $ftp, $tmpfile, $select_file, FTP_BINARY ) ) {
ftp_quit( $ftp );
phpftp_top();
echo "<font color="#ff0000"><strong>FTP get failed!</strong></font><p><p> <a href="ftp.php3">Start over?</a> ";
phpftp_bottom();
} else {
ftp_quit( $ftp );
header( "Content-Type: application/octet-stream" );
header( "Content-Disposition: attachment; filename=" . $select_file );
readfile( $tmpfile );
}
@unlink( $tmpfile );
}
}
function phpftp_put( $phpftp_user, $phpftp_passwd, $phpftp_dir, $userfile, $userfile_name ) {
srand((double)microtime()*1000000);
$randval = rand();
$tmpfile="/var/tmp/xfers/" . $userfile_name . "." . $randval;
if ( ! @copy( $userfile, $tmpfile ) ) {
phpftp_top();
echo "<font color="#ff0000"><strong>Upload failed! Probably no space on server for temp file.</strong></font><p><p> <a href="ftp.php3">Start over?</a> ";
phpftp_bottom();
} else {
if ( ! $ftp = @phpftp_connect( $phpftp_user, $phpftp_passwd ) ) {
unlink( $tmpfile );
phpftp_top();
echo "<font color="#ff0000"><strong>FTP login failed!</strong></font><p><p> <a href="ftp.php3">Start over?</a> ";
phpftp_bottom();
} else {
ftp_put( $ftp, $userfile_name, $tmpfile, FTP_BINARY );
ftp_quit( $ftp );
unlink( $tmpfile );
phpftp_list( $phpftp_user, $phpftp_passwd, $phpftp_dir );
}
}
}
switch( $function ) {
case "dir";
phpftp_list( $phpftp_user, $phpftp_passwd, $phpftp_dir );
break;
case "cd";
phpftp_cd( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_directory );
break;
case "get";
phpftp_get( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_file );
break;
case "put";
phpftp_put( $phpftp_user, $phpftp_passwd, $phpftp_dir, $userfile, $userfile_name );
break;
case "mkdir";
phpftp_mkdir( $phpftp_user, $phpftp_passwd, $phpftp_dir, $new_dir );
break;
case "";
phpftp_login();
break;
}
?>
|
在PHP的函数库中只找到了个ZLIB的函数还跟压缩有点关系,但是使我失望的是他没能解ZIP的文件(哎….只好放弃了,大家可不要说我没毅力呀!!!)。不过俗话说的好:功夫不负有心人嘛!
最后还是让我找到了解决的方法,就是通过PHP的程序执行函数来实现这个功能,因为现在能解ZIP文件的东西实在是太多啦(你要是不信,可以到有下载软件的地方找找看,保准你不会失望的,我的话不会错呦)。
下面就是该程序的原文件:
#upload.php教程
代码如下 |
复制代码 |
<table border="0" >
<form ENCTYPE="multipart/form-data" action="ups教程ave.php" method="post">
<tr>
<td>如果是*.ZIP的文件会被自动解压缩
<INPUT NAME="MyFile" TYPE="File" size="50">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="Submit" value=" 上传 " class=iwhite>
<input type="reset" value=" 重填 " class=iwhite>
</td>
</tr>
</table> |
</body>
</html>
代码如下 |
复制代码 |
<?
//upsave.php
//保存上传的文件
$filename="$MyFile_name";
copy($MyFile,"$filename");
unlink($MyFile);
//判断是否是ZIP文件
$expand_name=explode(".",$filename);
if($expand_name[1] == "zip" or $expand_name[1] == "ZIP")
{
$str="pkunzip.exe -e $filename ";
exec($str);
unlink($filename);
}
?> |
以上的程序我已经测试过,只要放在服务器上就可以了,但是该目录要有写的权限。还有一个pkunzip.exe的文件也要放在该目录中,该文件已经放在了压缩包中。
标签:[!--infotagslink--]