好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

key发说说php源码 php仿朋友圈源码

很多站长朋友们都不太清楚key发说说php源码,今天小编就来给大家整理key发说说php源码,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 求问PHP数组怎么把key重新排序 有源代码 2、 php的openssl_sign($data,$sign,$private_key)这个函数的源码是什么? 3、 php源码高手请进!!!! 4、 请教php源码加密及解密问题 5、 PHP微信公众平台自定义菜单响应事件,想知道如何才能通过key值点击响应(回复内容或者链接)源码如下 求问PHP数组怎么把key重新排序 有源代码

sort()是对值进行排序,

如果是对key排序的话,可以用array_values(),就会默认从0开始

php的openssl_sign($data,$sign,$private_key)这个函数的源码是什么?

PHP_FUNCTION(openssl_sign)

{

zval **key, *signature;

EVP_PKEY *pkey;

int siglen;

unsigned char *sigbuf;

long keyresource = -1;

char * data;

int data_len;

EVP_MD_CTX md_ctx;

zval *method = NULL;

long signature_algo = OPENSSL_ALGO_SHA1;

const EVP_MD *mdtype;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szZ|z", data, data_len, signature, key, method) == FAILURE) {

return;

}

pkey = php_openssl_evp_from_zval(key, 0, "", 0, keyresource TSRMLS_CC);

if (pkey == NULL) {

php_error_docref(NULL TSRMLS_CC, E_WARNING, "supplied key param cannot be coerced into a private key");

RETURN_FALSE;

}

if (method == NULL || Z_TYPE_P(method) == IS_LONG) {

if (method != NULL) {

signature_algo = Z_LVAL_P(method);

}

mdtype = php_openssl_get_evp_md_from_algo(signature_algo);

} else if (Z_TYPE_P(method) == IS_STRING) {

mdtype = EVP_get_digestbyname(Z_STRVAL_P(method));

} else {

php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown signature algorithm.");

RETURN_FALSE;

}

if (!mdtype) {

php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown signature algorithm.");

RETURN_FALSE;

}

siglen = EVP_PKEY_size(pkey);

sigbuf = emalloc(siglen + 1);

EVP_SignInit(md_ctx, mdtype);

EVP_SignUpdate(md_ctx, data, data_len);

if (EVP_SignFinal (md_ctx, sigbuf,(unsigned int *)siglen, pkey)) {

zval_dtor(signature);

sigbuf[siglen] = '\0';

ZVAL_STRINGL(signature, (char *)sigbuf, siglen, 0);

RETVAL_TRUE;

} else {

efree(sigbuf);

RETVAL_FALSE;

}

EVP_MD_CTX_cleanup(md_ctx);

if (keyresource == -1) {

EVP_PKEY_free(pkey);

}

}

这个是函数的源码,C写的。源码可以在php官网下载一个php版本,解压打开里面的ext/openssl.c搜上面代码即可。

php源码高手请进!!!!

1、安装php运行环境

2、安装数据库

3、将网站目录指向网站源码所在的文件夹

详细步骤如下:

===========

===========

===========

Windows 2000/XP/2003 下 IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置

关键词:Windows IIS下配置支持PHP+MYSQL

Apache下支持PHP的配置方法比较简单,这里就不写了

一般WIN主机推荐PHP环境组合:PHP4.4.x+MySQL4.0.x,故以下关于PHP4.4.x+MySQL4.0.x组合的安装以蓝色文字显示,如果你只需要安装PHP4.4.x+MySQL4.0.x的组合只看蓝色文字的相关内容即可

当然喜欢体验的或者WIN2003系统也可体验尝试最新的版本,推荐组合PHP5.1.x+MYSQL5.0.x/MySQL4.1.x

一、软件准备:以下均为截止2006-1-20的最新正式版本,下载地址也均长期有效

1.PHP,推荐PHP4.4.0的ZIP解压版本:

PHP(4.4.0):

[供选用]:

PHP(5.1.2):

2.MySQL,配合PHP4推荐MySQL4.0.26的WIN系统安装版本:

MySQL(4.0.26):

... p/from/pick#mirrors

[供选用]:

MySQL(4.1.16):

... p/from/pick#mirrors

MySQL(5.0.18):

... p/from/pick#mirrors

3.Zend Optimizer,当然选择当前最新版本拉:

Zend Optimizer(2.6.2):

(Zend软件虽然免费下载,但需要注册用户,这里提供本人注册好的帐户名:

xqincom

和密码:

xqin.com

,方便大家使用,请不要修改本帐号或将本帐户用于其他费正当途径,谢谢!)

登陆后选择Windows x86的Platform版本,如最新版本2.6.2

;zbid=995

4.phpMyAdmin,当然同样选择当前最新版本拉,注意选择for Windows 的版本哦:

phpMyAdmin(2.7.0):

假设 C:\ 为你现在所使用操作系统的系统盘,如果你目前操作系统不是安装在 C:\ ,请自行对应修改相应路径。同时由于C盘经常会因为各种原因重装系统,数据放在该盘不易备份和转移

选择安装目录,故本文将所有PHP相关软件均安装到D:\php目录下,这个路径你可以自行设定,如果你安装到不同目录涉及到路径的请对应修改以下的对应路径即可

二、安装 PHP :本文PHP安装路径取为D:\php\php4\

(为避混淆,PHP5.1.x版本安装路径取为D:\php\php5\)

(1)、下载后得到 php-4.4.0-Win32.zip ,解压至D:\php目录,将得到二级目录php-4.4.0-Win32,改名为 php4,也即得到PHP文件存放目录D:\php\php4\[如果是PHP5.1.2,得到的文件是php-5.1.2-Win32.zip,直接全 部接压至D:\php\php5目录即可得PHP文件存放目录D:\php\php5\

];

(2)、再将D:\php\php4目录和D:\php\php4\dlls目录[

PHP5为D:\php\php5\

]下的所有dll文件拷到c:\Windows\system32(win2000系统为 c:/winnt/system32/)下,覆盖已有的dll文件;

(3)、将php.ini-dist用记事本打开,利用记事本的查找功能搜索并修改:

搜索

CODE:

[Copy to clipboard]

register_globals = Off,将 Off 改成 On ,即得到register_globals = On;

注:这个对应PHP的全局变量功能,考虑有很多PHP程序需要全局变量功能故打开,打开后请注意-PHP程序的严谨性,如果不需要推荐不修改保持默认Off状态

再搜索

CODE:

[Copy to clipboard]

extension_dir =,并将其路径指到你的 PHP 目录下的 extensions 目录,比如:修改extension_dir = "./"为extension_dir = "D:/php/php4/extensions/" ;

PHP扩展功能目录[PHP5对应修改为extension_dir = "D:/php/php5/ext/"]

在D:\php下建立文件夹并命名为tmp

查找

CODE:

[Copy to clipboard]

;upload_tmp_dir =将;upload_tmp_dir该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。upload_tmp_dir是用来定 义上传文件存放的临时路径,在这里你还可以修改并给其定义一个绝对路径,这里设置的目录必须有读写权限。

这里我设置为upload_tmp_dir = D:/php/tmp (即前面建立的这个文件夹呵)

搜索找到

CODE:

[Copy to clipboard]

;Windows Extensions将下面一些常用的项前面的;去掉

CODE:

[Copy to clipboard]

;extension=php_mbstring.dll

CODE:

[Copy to clipboard]

;extension=php_curl.dll

CODE:

[Copy to clipboard]

;extension=php_dbase.dll

CODE:

[Copy to clipboard]

;extension=php_gd2.dll

这个是用来支持GD库的,一般需要,必选

CODE:

[Copy to clipboard]

;extension=php_ldap.dll

CODE:

[Copy to clipboard]

extension=php_zip.dll去掉前面的";"

对于PHP5的版本还需要查找

CODE:

[Copy to clipboard]

;extension=php_mysql.dll并同样去掉前面的";"

这个是用来支持MYSQL的,由于PHP5将MySQL作为一个独立的模块来加载运行的,故要支持MYSQL必选

查找

CODE:

[Copy to clipboard]

;session.save_path =去掉前面;号,本文这里将其设置置为

session.save_path = D:/php/tmp

其他的你可以选择需要的去掉前面的;然后将该文件另存为为php.ini到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下,注意更改文件后缀名为ini,得到C:\Windows\php.ini ( Windows 2000 下为 C:\WINNT\php.ini)

本人配置成功后的PHP.INI文件示例可供大家参考:

对应版本为PHP4.4.0

对应版本为PHP5.1.12

若路径等和本文相同可直接保存到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下使用若路径等和本文相同可直接保存到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下使用

一些朋友经常反映无法上传较大的文件或者运行某些程序经常超时,那么可以找到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下的PHP.INI以下内容修改:

max_execution_time = 30 ; 这个是每个脚本运行的最长时间,可以自己修改加长,单位秒

max_input_time = 60 ; 这是每个脚本可以消耗的时间,单位也是秒

memory_limit = 8M ; 这个是脚本运行最大消耗的内存,也可以自己加大

upload_max_filesize = 2M ; 上载文件的最大许可大小 ,自己改吧,一些图片论坛需要这个更大的值

(4)、配置 IIS 使其支持 PHP :

首先必须确定系统中已经正确安装 IIS ,如果没有安装,需要先安装 IIS ,安装步骤如下:

Windows 2000/XP 下的 IIS 安装:

用 Administrator 帐号登陆系统,将 Windows 2000 安装光盘插入光盘驱动器,进入“控制面板”点击“添加/删除程序”,再点击左侧的“添加/删除 Windows 组件”,在弹出的窗口中选择“Internet 信息服务(IIS)”,点下面的“详细信息”按钮,选择组件,以下组件是必须的:“Internet 服务管理器”、“World Wide Web 服务器”和“公用文件”,确定安装。

安装完毕后,在“控制面板”的“管理工具”里打开“服务”,检查“IIS Admin Service”和“World Wide Web Publishing Service”两项服务,如果没有启动,将其启动即可。

Windows 2003 下的 IIS 安装:

由于 Windows 2003 的 IIS 6.0 集成在应用程序服务器中,因此安装应用程序服务器就会默认安装 IIS 6.0 ,在“开始”菜单中点击“配置您的服务器”,在打开的“配置您的服务器向导”里左侧选择“应用程序服务器(IIS,ASP.NET)”,单击“下一步”出 现“应用程序服务器选项”,你可以选择和应用程序服务器一起安装的组件,默认全选即可,单击“下一步”,出现“选择总结界面”,提示了本次安装中的选项, 配置程序将自动按照“选择总结”中的选项进行安装和配置。

打开浏览器,输入:

,看到成功页面后进行下面的操作:

PHP 支持 CGI 和 ISAPI 两种安装模式,CGI 更消耗资源,容易因为超时而没有反映,但是实际上比较安全,负载能力强,节省资源,但是安全性略差于CGI,本人推荐使用 ISAPI 模式。故这里只解介绍 ISAPI 模式安装方法:(以下的截图因各个系统不同,窗口界面可能不同,但对应选项卡栏目是相同的,只需找到提到的对应选项卡即可)

在“控制面板”的“管理工具”中选择“Internet 服务管理器”,打开 IIS 后停止服务,对于WIN2000系统在”Internet 服务管理器“的下级树一般为你的”计算机名“上单击右键选择“属性”,再在属性页面选择主属性”WWW 服务“右边的”编辑“

对于XP/2003系统展开”Internet 服务管理器“的下级树一般为你的”计算机名“选择”网站“并单击右键选择“属性”

在弹出的属性窗口上选择“ISAPI 筛选器”选项卡找到并点击“添加”按钮,在弹出的“筛选器属性”窗口中的“筛选器名称”栏中输入:PHP ,再将浏览可执行文件使路径指向 php4isapi.dll 所在路径,如本文中为:D:\php\php4\sapi\php4isapi.dll[PHP5对应路径为D:\php\php5\ php5isapi.dll

]。

打开“站点属性”窗口的“主目录”选项卡,找到并点击“配置”按钮

在弹出的“应用程序配置”窗口中的”应用程序映射“选项卡找到并点击“添加”按钮新增一个扩展名映射,在弹出的窗口中单击“浏览”将可执行文件指向 php4isapi.dll 所在路径,如本文中为:D:\php\php4\sapi\php4isapi.dll[

PHP5对应路径为D:\php\php5\php5isapi.dll

],扩展名为 .php ,动作限于”GET,HEAD,POST,TRACE“,将“脚本引擎”“确认文件是否存在”选中,然后一路确定即可。如果还想支持诸如 .php3 ,.phtml 等扩展名的 PHP 文件,可以重复“添加”步骤,对应扩展名设置为需要的即可如.PHPX。

此步操作将使你服务器IIS下的所有站点都支持你所添加的PHP扩展文件,当然如果你只需要部分站点支持PHP,只需要在“你需要支持PHP的Web站 点”比如“默认Web站点”上单击右键选择“属性”,在打开的“ Web 站点属性”“主目录”选项卡,编辑或者添加PHP的扩展名映射即可或者将你步需要支持PHP的站点中的PHP扩展映射删除即可

再打开“站点属性”窗口的“文档”选项卡,找到并点击“添加”按钮,向默认的 Web 站点启动文档列表中添加 index.php 项。您可以将 index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 index.php 文档。

确定 Web 目录的应用程序设置和执行许可中选择为纯脚本,然后关闭 Internet 信息服务管理器

对于2003系统还需要在“Internet 服务管理器”左边的“WEB服务扩展”中设置ISAPI 扩展允许,Active Server Pages 允许

完成所有操作后,重新启动IIS服务。

在CMD命令提示符中执行如下命令:

net stop w3svc

net stop iisadmin

net start w3svc

到此,PHP的基本安装已经完成,我们已经使网站支持PHP脚本。

检查方法是,在 IIS 根目录下新建一个文本文件存为 php.php ,内容如下:

CODE:

[Copy to clipboard]

打开浏览器,输入:

,将显示当前服务器所支持 PHP 的全部信息,可以看到 Server API的模式为:ISAPI 。

或者利用PHP探针检测

下载后解压到你的站点根目录下并访问即可

三、安装 MySQL :

对于MySQL4.0.26下载得到的是mysql-4.0.26-win32.zip,解压到mysql-4.0.26-win32目录双击执行 Setup.exe 一路Next下一步,选择安装目录为D:\php\MySQL和安装方式为Custom自定义安装,再一路Next下一步即可。

安装完毕后,在CMD命令行中输入并运行:

CODE:

[Copy to clipboard]

D:\php\MySQL\bin\mysqld-nt -install如果返回Service successfully installed.则说明系统服务成功安装

新建一文本文件存为MY.INI,编辑配置MY.INI,这里给出一个参考的配置

(

可以下载后直接保存到WINDOWS或者WINNT目录使用)

CODE:

[Copy to clipboard]

[mysqld]

basedir=D:/php/MySQL

#MySQL所在目录

datadir=D:/php/MySQL/data

#MySQL数据库所在目录,可以更改为其他你存放数据库的目录

#language=D:/php/MySQL/share/your language directory

#port=3306

set-variable = max_connections=800

skip-locking

set-variable = key_buffer=512M

set-variable = max_allowed_packet=4M

set-variable = table_cache=1024

set-variable = sort_buffer=2M

set-variable = thread_cache=64

set-variable = join_buffer_size=32M

set-variable = record_buffer=32M

set-variable = thread_concurrency=8

set-variable = myisam_sort_buffer_size=64M

set-variable = connect_timeout=10

set-variable = wait_timeout=10

server-id = 1

[isamchk]

set-variable = key_buffer=128M

set-variable = sort_buffer=128M

set-variable = read_buffer=2M

set-variable = write_buffer=2M

[myisamchk]

set-variable = key_buffer=128M

set-variable = sort_buffer=128M

set-variable = read_buffer=2M

set-variable = write_buffer=2M

[WinMySQLadmin]

Server=D:/php/MySQL/bin/mysqld-nt.exe保存后复制此MY.INI文件到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下

回到CMD命令行中输入并运行:

CODE:

[Copy to clipboard]

net start mysqlMySQL 服务正在启动 .

MySQL 服务已经启动成功。

将启动 MySQL 服务;

DOS下修改ROOT密码:当然后面安装PHPMYADMIN后修改密码也可以通过PHPMYADMIN修改

格式:mysqladmin -u用户名 -p旧密码 password 新密码

例:给root加个密码xqin.com

首先在进入CMD命令行,转到MYSQL目录下的bin目录,然后键入以下命令

mysqladmin -uroot password xqin.com

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

D:\php\MySQL\bin>mysqladmin -uroot password xqin.com回车后ROOT密码就设置为xqin.com了

如果你下载的是 MySQL5.x或者MySQL4.1.x,例mysql-5.0.18-win32:解压后双击执行 Setup.exe ,Next下一步后选择Custom自定义安装,再Next下一步选择安装路径这里我们选择D:\php\MySQL,继续Next下一步跳过Sign UP完成安装。

安装完成后会提示你是不是立即进行配置,选择是即可进行配置。当然一般安装后菜单里面也有配置向导MySQL Server Instance Config Wizar,运行后按下面步骤配置并设置ROOT密码即可

Next下一步后选择Standard Configuration

Next下一步,钩选Include .. PATH

Next下一步,设置ROOT密码,建议社设置复杂点,确保服务器安全!

Apply完成后将在D:\php\MySQL目录下生成MY.INI配置文件,添加并启动MySQL服务

如果你的MySQL安装出错,并且卸载重装仍无法解决,这里提供一个小工具系统服务管理器

,用于卸载后删除存在的MYSQL服务,重起后再按上述说明进行安装一般即可成功安装

四、安装 Zend Optimizer :

下载后得到 ZendOptimizer-2.6.2-Windows-i386.exe ,直接双击安装即可,安装过程要你选择 Web Server 时,选择 IIS ,然后提示你是否 Restart Web Server,选择是,完成安装之前提示是否备份 php.ini ,点确定后安装完成。我这里安装到D:\php\Zend

以下两步的目录根据你自己的默认WEB站点目录来选,当然也可以选择到D:\php\Zend目录

Zend Optimizer 的安装向导会自动根据你的选择来修改 php.ini 帮助你启动这个引擎。下面简单介绍一下 Zend Optimizer 的配置选项。以下为本人安装完成后 php.ini 里的默认配置代码(分号后面的内容为注释):

zend_extension_ts="D:\php\Zend\lib\ZendExtensionManager.dll"

;Zend Optimizer 模块在硬盘上的安装路径。

zend_extension_manager.optimizer_ts="D:\php\Zend\lib\Optimizer-2.6.2"

;优化器所在目录,默认无须修改。

zend_optimizer.optimization_level=1023

;优化程度,这里定义启动多少个优化过程,默认值是 15 ,表示同时开启 10 个优化过程中的 1-4 ,我们可以将这个值改为 1023 ,表示开启全部10个优化过程。

调用phpinfo()函数后显示:

Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v1.0.9, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v2.6.2, Copyright (c) 1998-2006, by Zend Technologies 则表示安装成功。

请教php源码加密及解密问题

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 = '<?php'."\n eval(gzinflate(base64_decode("."'".$encode."'".")));\n\n?>";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 = '<?php '."\n".$s."\n".' ?>';

//echo $s;

// 生成 加密后的PHP文件

$fpp1 = fopen('temp_'.$filename, 'w');

fwrite($fpp1, $s) or die('写文件错误');

?>

其实,PHP加密源码方式有很多,譬如,免费的微盾PHP加密,还有 搞的在线加密,只是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);

PHP微信公众平台自定义菜单响应事件,想知道如何才能通过key值点击响应(回复内容或者链接)源码如下

以下为获取微信返回的数据

 

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//返回回复数据  

    if (!empty($postStr))

    {

      $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);  

      $this->fromUsername = $postObj->FromUserName;//发送消息方ID  

      $this->toUsername = $postObj->ToUserName;//接收消息方ID  

      $this->keyword = trim($postObj->Content);//用户发送的消息  

      $this->times = time();//发送时间  

      $MsgType = $postObj->MsgType;//消息类型  

      

      if($MsgType=='event')  //判断微信自定义响应事件

      {

        $MsgEvent = $postObj->Event;//获取事件类型  

        if ($MsgEvent=='subscribe'){  //订阅事件

          #要返回的消息

        }elseif ($MsgEvent=='CLICK'){  //点击菜单

          //点击事件  

          $EventKey = $postObj->EventKey;//菜单的自定义的key值,可以根据此值判断用户点击了什么内容,从而推送不同信息  

        switch($EventKey){

           case "find" :  //菜单中key相关值

            #返回的消息

            break;

            case "lock_acount":

              #返回的消息

              break;

            case "other":

              #返回的消息

              break;

          }

        }

      }

关于key发说说php源码的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于key发说说php源码 php仿朋友圈源码的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did196185
更新时间:2023-04-26   阅读:32次

上一篇: php模块改网站 php网站源码修改

下一篇:php无法调用c php call to undefined function

相关资讯

最新资料更新

  • 1.php好的入门书籍 php好的入门书籍在哪里
  • 2.包含peintphp的词条
  • 3.php短信被刷 php防止短信被刷
  • 4.php读取数据库字段值 php读取sql
  • 5.php中文注释乱码 php注释语句
  • 6.包含php-vcmd的词条
  • 7.搭建分站源码php 建立分站怎么建
  • 8.phpwsdl调用 php调用php文件
  • 9.php有类似cmap 与php类似的语言
  • 10.php复杂语法 php基本语法
  • 11.包含phpgetitems的词条
  • 12.php下载liunx php下载器
  • 13.图片二进制php 图片二进制转换器
  • 14.phpvc6vc9的简单介绍
  • 15.phpword读写 php读写word 文档
  • 16.php如何转换json php如何转换视频
  • 17.bashphp的简单介绍
  • 18.php显示json php显示客户端ip和服务器ip
  • 19.php字体和颜色 php字体样式代码
  • 20.php爬淘宝图片 php爬取图片

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]