php相册源码,用php实现手机拍照+本地相册实现图片上传功能,需要统一样式
php相册源码,用php实现手机拍照+本地相册实现图片上传功能,需要统一样式详细介绍
本文目录一览: 谁给个PHP图片网站源码
http://hi.baidu.com/zchare/blog/item/41f0f803a6db8b7d3912bba5.html俺的空间里有个 希望对你有帮助
常来网免费空间(TheC.Cn) - 国内最大的免费空间站 ASP . FTP. PHP空间【注册地址】:http://web.99081.com/sysweb/RegTrans.aspx?CodeProvider=sky521
http://web.TheC.Cn/sysweb/RegTrans.aspx?CodeProvider=sky521【特色介绍】:『空间无限 永久免费』
免费为您提供无限大的存储空间,足以容纳成千上万甚至上百万计的网页文件,并可永久免费使用!
『域名绑定及转发』
您可以绑定(或转发)自己的域名,还可以将域名绑定(或转发)到子目录!另外赠送xxx.Qyun.Net的免费域名供您使用!
『WEB管理 FTP管理』
通过在线(Web)和FTP两种方式及在线解压/压解等强大功能,可以轻松完成网站发布及维护任务,使文件管理易如反掌!
『多种脚本支持』
支持HTML、ASP、ASP.NET1.0、ASP.NET2.0及PHP多种脚本,使您的选择更加灵活!
『数据库支持』
系统同进支持ACCESS、MSSQL、MYSQL三种数据库,使您的选更加全面,满足您的多种需要!
『组件齐全』
支持FSO、Zend、Jmail、AspJepg等多种流行组件,全面支持,并且不断完善,不断更新,体验更多建站乐趣!
http://web.99081.com/sysweb/RegTrans.aspx?CodeProvider=sky521
帮忙推荐个类似与Flickr或Yuppo的开源相册程序
Gallery这个我用过,好像只有自己传,不能注册其他用户好像。php的源码
Plogger 3.0 很好的一个PHP开源相册程序
支持zip图片包上传
支持FTP上传导入
Feedback管理
可以整合wordpress
好多喜欢拍照的朋友都问我,怎么建设个自己独立的相册网站。我推荐他们建设独立博客,但是似乎他们对又是写又是传的事情不太有兴趣,说是只要相册就好。我就寻思着把这些开源的相册系统全找出来,网络上也有很多类似的文章了,不过弄的似乎不是很全,我这里基本上因该是全部主流开源网络相册源码,现在分享给大家。
iFoto
基于CSS,GD2,文件真正简单的PHP相册。不需要MySQL。
SPGM
SPGM(Simple Picture Gallery Manager)该基于Web的图片管理器支持为图片加说明,不限制图片分类目录,支持对每个目录进行配置(支持继承),随机或固定缩略图,对新图片加亮显示,支持EXIF,提供幻灯片浏览模式,易于集成到网站中,可按自己的喜好来调整界面主题样式,多语言支持(当前提供34种)。
yappa-ng
yappa- ng是一个非常强大但非常易于安装和使用的在线PHP相册。支持所有操作系统(Linux/UNIX,Windows,MAC, ...),和所有Web服务器(Apache,IIS,...)并且不需要数据库支持。每一张图片都可以以多种不同的尺寸进行查看,并且缩略图和所有其它调整大小都将自动快速创建。yappa-ng支持为相册设置密码保护,统计图片点击,设置图片评论功能。
Gallery
Gallery是一个开源基于Web的相簿管理器。用户可以使用Web浏览器上传图片(缩略图也同时被创建),评价图片,添加注释和发送电子贺卡。管理员可以批量添加已经上传到FTP服务器上的图片。
Slooze
Slooze安装与使用都非常简单,而且具有很好的结构。
LinPHA
LinPHA是一个易于使用,支持多语言,灵活的相册。它使用SQL数据库((MySQL/PostgreSQL/SQLite)来存储你图片的的相关信息。它自带一个基于HTML的Installer,所以你不需要有架设SQL DB的经验。LinPHA的特性:完善的用户管理,把相册压缩成zip文件下载,统计最受欢迎的图片,包含上传功能的Web文件管理器,为图片加入水印,打印图片等。
Qdig
Qdig是一个非常简易的图片管理器(只有一个PHP脚本文件)。
Zoph
Zoph(Zoph Organizes Photos)一个基于web的照片展示与管理系统。
Leafs-Photo management
Leafs是一个基于web的照片管理软件.访问者可以上传图片和添加评论,所有页面都处理成静态页面.Leafs还为基于搜索引擎的图片搜索提供一些支持.
PHP Photo Album script
这个PHP脚本能够自动获取指定目录下的所有图片,然后生成一个可按文件日期或文件名排序并进行分组的相册。
Snipe Gallery
Snipe Gallery是一个基于PHP+MySQL开发的图片管理器。它的特点:易于安装;提供跨平台剪切和缩略图片的工具;支持PNG,JPG和GIF格式;支持使用.zip上传来批量导入图片;按设置自动调整图片大小;支持通过标题,描述,摄影者,位置和关键字搜索图片;支持为图片加文本水印。
Plogger
Plogger这个开源图片管理系统易于安装并易于与你的现有网站相集成。支持按设定尺寸自动生成缩略图,支持一些主流图片格式包括JPG、BMP、PNG、GIF。支持为图片添加评论。集成JavaScript幻灯片浏览器。
phpMyPhotoGallery
phpMyPhotoGallery是一个基于Web的图片管理系统,具有类似于Windows资源管理器的操作界面。 它能够一次性上传指定目录下的所有图片,并快速生成缩略图。
phpAlbum.net
易于安装和使用,不需要数据库。提供密码保存,缓存,自动缩略和图片大小调整等。
singapore
singapore是一个开源,多语言支持,模板驱动的图片管理器。它不需要数据库,所有图片信息都存储在CSV文件中。
phpGraphy
phpGraphy这个相册管理系统:支持实时生成缩略图/低分辩率的图片。提供用户评论/评价系统。显示最受欢迎/最近更新/修改的图片。支持幻灯片浏览方式。对图片和目录实行角色访问控制。支持操作EXIF/IPTC元数据。它还易于安装高度可配置(主题/模板)。
PhpWebGallery
PhpWebGallery 是一个带有非常简单的安装界面和管理面板的图片管理系统。它的特点包括:可设置自由或限制图片访问,角色/用户管理,多服务器支持,支持用户评论,采用 HTML模板控制界面外观,多语言支持,一个RSS通知Feed,EXIF和IPTC元数据管理,多目录支持(每一张图片可以同时属于多个目录),所有 Web页面都兼容W3C规范。
Phormer
Phormer是一个轻量级,强大的PHP在线相册。不需要MySQL,易于安装。支持Ajax上传/评论/评价,主题/样式(CSS)更换,RSS输出,EXIF,对图片进行分类,加权限控制,集中上传(ZIP),幻灯片的形式展示等等
Pyxy-gallery
基于Ajax技术的PHP相册。
Cheesecake
Cheesecake基于cakePHP框架开发。具有自动创建缩略图,幻灯片浏览方式,添加注释(自动屏蔽垃圾信息),易于管理,Tag支持等特点。
谁给个图片分享网站源码?(PHP的)
方维分享系统,很强大全面,可改动很多东西,但由于很多东西都是他们公司自己开发的,后期再加新功能的话会很难,大婶级别的可能能看懂,不确定他们公司允不允许用做二次开发的商业用途。你可以在本地安装试试看,网上有系统说明文档可以下载,照着说明文档安装就可以了。
动软的分享社区系统就可以实现图片分享,并且提供源码的,你可以看看
没有啊
如何用php获取网页源码?
1、使用file_get_contents获得网页源代码。这个方法最常用,只需要两行代码即可,非常简单方便。
2、使用fopen获得网页源代码。这个方法用的人也不少,不过代码有点多。
3、使用curl获得网页源代码。使用curl获得网页源代码的做法,往往是需要更高要求的人使用,例如当你需要在抓取网页内容的同时,得到网页header信息,还有ENCODING编码的使,USERAGENT的使用等等。所谓的网页代码,就是指在网页制作过程中需要用到的一些特殊的\"语言\",设计人员通过对这些\"语言\"进行组织编排制作出网页,然后由浏览器对代码进行\"翻译\"后才是我们最终看到的效果。制作网页时常用的代码有HTML,JavaScript,ASP,PHP,CGI等,其中超文本标记语言(标准通用标记语言下的一个应用、外语简称:HTML)是最基础的网页代码。
用php实现手机拍照+本地相册实现图片上传功能,需要统一样式
PHP?很遗憾,PHP无法启动手机的拍照功能,这个需要调用手机的内部资源,通俗来说就是只有APP获取了这个权限才能去打开拍照公告,PHP是无法办到的。对于文件上传,目前还真的只有 ,至于样式自己可以 去调试,关于你说的兼容性太差了,这个很不解,麻烦描述清楚点。
打开相册或打开照相机是由浏览器决定的,并非样式能够控制
国外最牛的Php开源建站平台
大量的PHP开源(开放源代码/Open Source)应用改变了这个世界 改变了互联网 以下我们总结从数据库到购物 博客等众多类型的开源PHP软件 供网站开发者们参考
博客 WordPress
WordPress是使用PHP开发的著名博客平台 免费开源 功能强大 不仅仅用于博客搭建 还可以广泛应用于各类网络信息发布平台
论坛 phpBB
phpBB是一种广泛流行的开源论坛软件 具有易于使用的管理面板和友好的用户安装界面 可以轻松地在数分钟内建立起一个论坛 功能上具有很高的可配置性 能够完全定制出相当个性化的论坛
CMS Drupal
Drupal是一个开源的内容管理系统(CMS)平台 拥有强大并可自由配置的功能 能支持从个人博客到大型社区驱动的网站等各种不同应用的网站项目
Wiki MediaWiki
MediaWiki是PHP语言写成开源Wiki引擎 全世界最大的Wiki项目维基百科就是使用MediaWiki引擎
Digg Pligg
Pligg是一套灵活的类似Digg的Web CMS系统 系统使用PHP开发 模仿了国外流行的DIGG系统
图像 Gallery
Gallery 是一个非常有名的免费开源图库相册软件 基于 PHP 和 MySQL PostgreSQL 等数据库 功能非常强大 有丰富的扩展可以下载 安装很简单 有很多插件可用
RSS Gregarius
Gregarius是一个RSS聚合程序 免费开源 具备不错的用户体验 易于操作和管理 可以把其当成RSS阅读器使用
电子商务 osCommerce
osCommerce是一套由自由软件开发社团开发并维护的在线商店的解决方案 免费开源 并可以应用到任何的商业环境中 可以在短时间内生成一个功能强大的电子商务网站
广告 OpenX
OpenX(原名phpAdsNew)是一个用PHP开发的广告管理与跟踪系统 三连素材 适合各类网站使用 能够管理每个广告主拥有的多种任何尺寸横幅广告 按天查看 详细和概要统计并通过电子邮件发送报表给广告主
数据库 phpMyadmin
lishixinzhi/Article/program/PHP/201311/20889
如何下载PHP语言网站源码?
在PHP的官方网站可以下载源码(www.php.net),进入之后选择DOWNLOAD里面的Complete Source Code就能下载,具体的页面地址是:http://www.php.net/get/php-5.2.9.tar.bz2/from/a/mirror
如何查看php页面的源代码?
PHP是后端语言,前端是无法查看的,前端看到的是最终运算之后的结果,PHP源代码是无法查看的。如果能直接查看PHP源代码那还得了,如果你是单纯想看看网页代码,那就在浏览器右键-查看源码就可以看见。
php获取网页源码内容有哪些办法
以下就是几种常用的用php抓取网页中的内容的方法。
1.file_get_contents
PHP代码
代码如下:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<!--?php $url = "http://www.jb51.net";
$contents = file_get_contents($url);
//如果出现中文乱码使用下面代码
//$getcontent = iconv("gb2312", "utf-8",$contents);
echo $contents;
?>
2.curl
PHP代码
代码如下:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<!--?php $url = "http://www.jb51.net";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
//在需要用户检测的网页里需要增加下面两行
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
//curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD);
$contents = curl_exec($ch);
curl_close($ch);
echo $contents;
?>
3.fopen->fread->fclose
PHP代码
代码如下:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<!--?php $handle = fopen ("http://www.jb51.net", "rb");
$contents = "";
do {
$data = fread($handle, 1024);
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
fclose ($handle);
echo $contents;
?>
注意:
1.使用file_get_contents和fopen必须空间开启allow_url_fopen。方法:编辑php.ini,设置allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。
2.使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需要拷贝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安装curl扩展。
##############至于说哪种方法好,这个不好说,看你要完成的任务有多难来定吧,我一般用CURL比较多....自己去网上搜搜,有很多博客里有教程,感兴趣的事加上聪明的人,一下下就学会了哦..祝你好运.
php已提供相关函数。
file_get_contents() 函数把整个文件读入一个字符串中。
$ret = file_get_contents('要采集的网页URL');// 若需要从页面中获取内容,可以用正则匹配$begin=change_match_string('匹配开头的字符串');$end=change_match_string('匹配结尾的字符串');$p = "{$begin}(.*){$end}";// 使用正则进行匹配if (eregi($p,$ret,$rs)) return $rs[1];else return false;
可以参考以下几种方法:
方法一: file_get_contents获取
$url="http://www.baidu.com/";
$fh= file_get_contents
('http://www.hxfzzx.com/news/fzfj/');echo $fh;
方法二:使用fopen获取网页源代码
$url="http://www.baidu.com/";
$handle = fopen ($url, "rb");
$contents = "";
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
echo $contents; //输出获取到得内容。
方法三:使用CURL获取网页源代码
$url="http://www.baidu.com/";
$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$curl = curl_init(); //创建一个新的CURL资源
curl_setopt($curl, CURLOPT_URL, $url); //设置URL和相应的选项
curl_setopt($curl, CURLOPT_HEADER, 0); //0表示不输出Header,1表示输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设定是否显示头信息,1显示,0不显示。//如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, ''); //设置编码格式,为空表示支持所有格式的编码
//header中“Accept-Encoding: ”部分的内容,支持的编码格式为:"identity","deflate","gzip"。
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
//设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。
$data = curl_exec($curl);
echo $data;
//echo curl_errno($curl); //返回0时表示程序执行成功
curl_close($curl); //关闭cURL资源,并释放系统资源
拓展资料
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
参考资料:PHP(超文本预处理器)-百度百科
请教php源码加密及解密问题
用dw编辑器自带的加密工具,或者自己写js加密解密脚本
base64 可加可解。
md5 不可解
base64 可加可解。 md5 不可解
2种PHP的源码加密方式,此加密方法支持任意PHP版。
注意,加密后的PHP代码无需第三方工具解密,像往常一样,直接运行即可。
复制代码 代码如下:
<!--?php function encode_file_contents($filename) {$type=strtolower(substr(strrchr($filename,'.'),1));if ('php' == $type && is_file($filename) && is_writable($filename)) { // 如果是PHP文件 并且可写 则进行压缩编码$contents = file_get_contents($filename); // 判断文件是否已经被编码处理$contents = php_strip_whitespace($filename);// 去除PHP头部和尾部标识
$headerPos = strpos($contents,'
<!--?php'); $footerPos = strrpos($contents,'?>');
$contents = substr($contents, $headerPos + 5, $footerPos - $headerPos);$encode = base64_encode(gzdeflate($contents)); // 开始编码$encode = '
";return file_put_contents($filename, $encode);}
return false;
}
//调用函数
$filename = 'dam.php';
encode_file_contents($filename);
echo "OK,加密完成!"
?>
加密方式2:
复制代码 代码如下:
<!--?php function RandAbc($length = "") { // 返回随机字符串$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";return str_shuffle($str);
}
$filename = 'index.php'; //要加密的文件
$T_k1 = RandAbc(); //随机密匙1
$T_k2 = RandAbc(); //随机密匙2
$vstr = file_get_contents($filename);
$v1 = base64_encode($vstr);
$c = strtr($v1, $T_k1, $T_k2); //根据密匙替换对应字符。
$c = $T_k1.$T_k2.$c;
$q1 = "O00O0O";
$q2 = "O0O000";
$q3 = "O0OO00";
$q4 = "OO0O00";
$q5 = "OO0000";
$q6 = "O00OO0";
$s = '$'.$q6.'=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$'.$q1.'=$'.$q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'.$q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6.'{24};$'.$q5.'=$'.$q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.$q6.'{32}.$'.$q6.'{35}.$'.$q6.'{26}.$'.$q6.'{30};eval($'.$q1.'("'.base64_encode('$'.$q2.'="'.$c.'";eval(\'?>\'.$'.$q1.'($'.$q3.'($'.$q4.'($'.$q2.',$'.$q5.'*2),$'.$q4.'($'.$q2.',$'.$q5.',$'.$q5.'),$'.$q4.'($'.$q2.',0,$'.$q5.'))));').'"));';$s = '
';
//echo $s;
// 生成 加密后的PHP文件
$fpp1 = fopen('temp_'.$filename, 'w');
fwrite($fpp1, $s) or die('写文件错误');
?>
其实,PHP加密源码方式有很多,譬如,免费的微盾PHP加密,还有 www.phpjm.net 搞的在线加密,只是phpjm更复杂点而已。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++另外,分享一个 PHP类,它能对 文本的内容进行 二进制加密 与 解密,代码如下:
复制代码 代码如下:
<!--?php class text_auth
{
var $n_iter;
function text_auth()
{
$this->setIter(32);
}
function setIter($n_iter)
{
$this->n_iter = $n_iter;
}
function getIter()
{
return $this->n_iter;
}
function encrypt($data, $key)
{
$n = $this->_resize($data, 4);
$data_long[0] = $n;
$n_data_long = $this->_str2long(1, $data, $data_long);$n = count($data_long);
if (($n & 1) == 1) {
$data_long[$n] = chr(0);
$n_data_long++;
}
$this->_resize($key, 16, true);
if ( '' == $key )
$key = '0000000000000000';
$n_key_long = $this->_str2long(0, $key, $key_long);$enc_data = '';
$w = array(0, 0);
$j = 0;
$k = array(0, 0, 0, 0);
for ($i = 0; $i < $n_data_long; ++$i) {
if ($j + 4 <= $n_key_long) {
$k[0] = $key_long[$j];
$k[1] = $key_long[$j + 1];
$k[2] = $key_long[$j + 2];
$k[3] = $key_long[$j + 3];
} else {
$k[0] = $key_long[$j % $n_key_long];
$k[1] = $key_long[($j + 1) % $n_key_long];$k[2] = $key_long[($j + 2) % $n_key_long];$k[3] = $key_long[($j + 3) % $n_key_long];}
$j = ($j + 4) % $n_key_long;
$this->_encipherLong($data_long[$i], $data_long[++$i], $w, $k);$enc_data .= $this->_long2str($w[0]);
$enc_data .= $this->_long2str($w[1]);
}
return $enc_data;
}
function decrypt($enc_data, $key)
{
$n_enc_data_long = $this->_str2long(0, $enc_data, $enc_data_long);$this->_resize($key, 16, true);
if ( '' == $key )
$key = '0000000000000000';
$n_key_long = $this->_str2long(0, $key, $key_long);$data = '';
$w = array(0, 0);
$j = 0;
$len = 0;
$k = array(0, 0, 0, 0);
$pos = 0;
for ($i = 0; $i < $n_enc_data_long; $i += 2) {if ($j + 4 <= $n_key_long) {
$k[0] = $key_long[$j];
$k[1] = $key_long[$j + 1];
$k[2] = $key_long[$j + 2];
$k[3] = $key_long[$j + 3];
} else {
$k[0] = $key_long[$j % $n_key_long];
$k[1] = $key_long[($j + 1) % $n_key_long];$k[2] = $key_long[($j + 2) % $n_key_long];$k[3] = $key_long[($j + 3) % $n_key_long];}
$j = ($j + 4) % $n_key_long;
$this->_decipherLong($enc_data_long[$i], $enc_data_long[$i + 1], $w, $k);if (0 == $i) {
$len = $w[0];
if (4 <= $len) {
$data .= $this->_long2str($w[1]);
} else {
$data .= substr($this->_long2str($w[1]), 0, $len % 4);}
} else {
$pos = ($i - 1) * 4;
if ($pos + 4 <= $len) {
$data .= $this->_long2str($w[0]);
if ($pos + 8 <= $len) {
$data .= $this->_long2str($w[1]);
} elseif ($pos + 4 < $len) {
$data .= substr($this->_long2str($w[1]), 0, $len % 4);}
} else {
$data .= substr($this->_long2str($w[0]), 0, $len % 4);}
}
}
return $data;
}
function _encipherLong($y, $z, &$w, &$k)
{
$sum = (integer) 0;
$delta = 0x9E3779B9;
$n = (integer) $this->n_iter;
while ($n-- > 0) {
$y = $this->_add($y,
$this->_add($z << 4 ^ $this->_rshift($z, 5), $z) ^$this->_add($sum, $k[$sum & 3]));
$sum = $this->_add($sum, $delta);
$z = $this->_add($z,
$this->_add($y << 4 ^ $this->_rshift($y, 5), $y) ^$this->_add($sum, $k[$this->_rshift($sum, 11) & 3]));}
$w[0] = $y;
$w[1] = $z;
}
function _decipherLong($y, $z, &$w, &$k)
{
$sum = 0xC6EF3720;
$delta = 0x9E3779B9;
$n = (integer) $this->n_iter;
while ($n-- > 0) {
$z = $this->_add($z,
-($this->_add($y << 4 ^ $this->_rshift($y, 5), $y) ^$this->_add($sum, $k[$this->_rshift($sum, 11) & 3])));$sum = $this->_add($sum, -$delta);
$y = $this->_add($y,
-($this->_add($z << 4 ^ $this->_rshift($z, 5), $z) ^$this->_add($sum, $k[$sum & 3])));
}
$w[0] = $y;
$w[1] = $z;
}
function _resize(&$data, $size, $nonull = false){
$n = strlen($data);
$nmod = $n % $size;
if ( 0 == $nmod )
$nmod = $size;
if ($nmod > 0) {
if ($nonull) {
for ($i = $n; $i < $n - $nmod + $size; ++$i) {$data[$i] = $data[$i % $n];
}
} else {
for ($i = $n; $i < $n - $nmod + $size; ++$i) {$data[$i] = chr(0);
}
}
}
return $n;
}
function _hex2bin($str)
{
$len = strlen($str);
return pack('H' . $len, $str);
}
function _str2long($start, &$data, &$data_long){
$n = strlen($data);
$tmp = unpack('N*', $data);
$j = $start;
foreach ($tmp as $value)
$data_long[$j++] = $value;
return $j;
}
function _long2str($l)
{
return pack('N', $l);
}
function _rshift($integer, $n)
{
if (0xffffffff < $integer || -0xffffffff > $integer) {$integer = fmod($integer, 0xffffffff + 1);}
if (0x7fffffff < $integer) {
$integer -= 0xffffffff + 1.0;
} elseif (-0x80000000 > $integer) {
$integer += 0xffffffff + 1.0;
}
if (0 > $integer) {
$integer &= 0x7fffffff;
$integer >>= $n;
$integer |= 1 << (31 - $n);
} else {
$integer >>= $n;
}
return $integer;
}
function _add($i1, $i2)
{
$result = 0.0;
foreach (func_get_args() as $value) {
if (0.0 > $value) {
$value -= 1.0 + 0xffffffff;
}
$result += $value;
}
if (0xffffffff < $result || -0xffffffff > $result) {$result = fmod($result, 0xffffffff + 1);
}
if (0x7fffffff < $result) {
$result -= 0xffffffff + 1.0;
} elseif (-0x80000000 > $result) {
$result += 0xffffffff + 1.0;
}
return $result;
}
}
?>
使用方法参考如下:
// 加密过程
view sourceprint?
$text_file = S_ROOT . './456.php';
$str = @file_get_contents($text_file);
require_once S_ROOT . "./text_auth.php";
$text_auth = new text_auth(64);
$str = $text_auth->encrypt($str, "qianyunlai.com");$filename = S_ROOT . './789.php'; // 加密后的文本为二进制,普通的文本编辑器无法正常查看file_put_contents($filename, $str);
// 解密过程
view sourceprint
?01 $text_file = S_ROOT . './789.php';
$str = @file_get_contents($text_file);
require_once S_ROOT . "./text_auth.php";
$text_auth = new text_auth(64);
$str = $text_auth->decrypt($str, "qianyunlai.com");$filename = S_ROOT . './456.php';
file_put_contents($filename, $str);