当前位置: 编程技术>php
本页文章导读:
▪php中使用接口实现工厂设计模式的代码
接口在php只能起到约束类的定义作用,虽不像c#/java那么直观,但基于oop的封装要求,使用接口可以提高程序的可扩展性,如实现代理设计模式。 代码如下: <?php //人类接口 interface IHuman { f.........
▪php中jQuery插件autocomplate的简单使用笔记
首先需要的文件有jquery.js,jquery.autocomplete.js,jquery.autocomplete.js,这三个文件,哪里有?百度、谷歌都可以找到。可以去官网上下,里面包含了一些demo,只留下这三个文件即可。 js代码: .........
▪PHP的加密方式及原理
代码如下: <?php //变量注意区分数字 "0" 和 字符"O" $OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'); // 解码已编码的 URL 字符串, 解码结果是 fg6sbehpra4co_tnd $OOO0000O0=$OOO000000{4}.$OOO0000.........
[1]php中使用接口实现工厂设计模式的代码
来源: 互联网 发布时间: 2013-11-30
接口在php只能起到约束类的定义作用,虽不像c#/java那么直观,但基于oop的封装要求,使用接口可以提高程序的可扩展性,如实现代理设计模式。
代码如下:
<?php
//人类接口
interface IHuman
{
function GetName();
}
//男人类,实现人类接口
class ManClass implements IHuman
{
//获取姓名方法
public function GetName()
{
return "I'm man."."<br>";
}
}
//女人类,实现人类接口
class WomanClass implements IHuman
{
//获取姓名方法
public function GetName()
{
return "I'm Woman."."<br>";
}
}
//类工厂,根据需要生产不同实例对象返回
class ManFactory
{
//根据参数获取实例对象
public function GetIHuman($IHuman="man")
{
if($IHuman=="woman")
{
return new WomanClass();
}
else if($IHuman=="man")
{
return new ManClass();
}
else
{
return null;
}
}
//直接获取woman类
public function GetWoman()
{
return new WomanClass();
//return new ManClass();
}
//直接获取man类
public function GetMan()
{
return new ManClass();
}
}
$ManFactory=new ManFactory();
$Manwoman");
echo $IHuman->GetName();
$Woman=$ManFactory->GetWoman();
echo $Woman->GetName();
$Man=$ManFactory->GetMan();
echo $Man->GetName();
?>
运行结果:
I'm man.
I'm Woman.
I'm Woman.
I'm man.
[2]php中jQuery插件autocomplate的简单使用笔记
来源: 互联网 发布时间: 2013-11-30
首先需要的文件有jquery.js,jquery.autocomplete.js,jquery.autocomplete.js,这三个文件,哪里有?百度、谷歌都可以找到。可以去官网上下,里面包含了一些demo,只留下这三个文件即可。
js代码:
<SCRIPT language=javascript src="/js/jquery.js" type=text/javascript>
</SCRIPT><SCRIPT language=javascript src="/js/jquery.autocomplete.js" type=text/javascript></SCRIPT>
<SCRIPT language=javascript type=text/javascript>
$(document).ready(function(){
/*这里做的是一个简单的检索姓名的自动完成程序*/
$('#key_name').autocomplete('doctor_list.php',{
/*此处是请求的地址*/
width: 150,
/*此处是自动提示框的宽度*/
matchContains: true,
/*是否使用内部比较(匹配单词的一部分)*/
selectFirst: false,
/*如果这个设置为true,第一个autocomplete值将 被自动通过tab/回车选择,即使没有通过键盘或鼠标精选选择 */
extraParams: {name:function(){return $("#key_name").val();},action:"getAjaxInfo"}
/*这个extraParams是后端的附加参数,以这个为例,name是请求的地址中的参数,默认是以GET方式,action:"getAjaxInfo"这个也是GET传递的参数,完整的请求地址如下 doctor_list.php?action=getAjaxInfo&name=表单数据了*/
});
</SCRIPT>
HTML代码中只有:
<input id="key_name" type="text" name="key_name" />
下面是php代码:
if($_GET['action'] == 'getAjaxInfo'){
//这里由于我写其它应用了,如果单纯做这一个自动完成,可以写简单一点
if($_GET['name'] != ''){
$field = 'name';
}
if($field != ''){
$val = $_GET['$field'];
$sql = "select `$field` from doctor_info where $field like '%$val%'";
$rst = $aa->execute($sql);
while($row = mysql_fetch_array($rst)){
echo $row[0]."\n";
}
}
exit;
}
js代码:
代码如下:
<SCRIPT language=javascript src="/js/jquery.js" type=text/javascript>
</SCRIPT><SCRIPT language=javascript src="/js/jquery.autocomplete.js" type=text/javascript></SCRIPT>
<SCRIPT language=javascript type=text/javascript>
$(document).ready(function(){
/*这里做的是一个简单的检索姓名的自动完成程序*/
$('#key_name').autocomplete('doctor_list.php',{
/*此处是请求的地址*/
width: 150,
/*此处是自动提示框的宽度*/
matchContains: true,
/*是否使用内部比较(匹配单词的一部分)*/
selectFirst: false,
/*如果这个设置为true,第一个autocomplete值将 被自动通过tab/回车选择,即使没有通过键盘或鼠标精选选择 */
extraParams: {name:function(){return $("#key_name").val();},action:"getAjaxInfo"}
/*这个extraParams是后端的附加参数,以这个为例,name是请求的地址中的参数,默认是以GET方式,action:"getAjaxInfo"这个也是GET传递的参数,完整的请求地址如下 doctor_list.php?action=getAjaxInfo&name=表单数据了*/
});
</SCRIPT>
HTML代码中只有:
<input id="key_name" type="text" name="key_name" />
下面是php代码:
代码如下:
if($_GET['action'] == 'getAjaxInfo'){
//这里由于我写其它应用了,如果单纯做这一个自动完成,可以写简单一点
if($_GET['name'] != ''){
$field = 'name';
}
if($field != ''){
$val = $_GET['$field'];
$sql = "select `$field` from doctor_info where $field like '%$val%'";
$rst = $aa->execute($sql);
while($row = mysql_fetch_array($rst)){
echo $row[0]."\n";
}
}
exit;
}
直接运行即可实现 。
下面贴出来autocomplate的一些公共用法,从别的站上面粘过来的,参考方便
[3]PHP的加密方式及原理
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
//变量注意区分数字 "0" 和 字符"O"
$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');
// 解码已编码的 URL 字符串, 解码结果是 fg6sbehpra4co_tnd
$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};
//然后把 解码后的字符分别 取得 4, 9, 3, 5 里面的值并连接在一起,结果是 base。
//下同, 最后的结果是 base64_decode
$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};
$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};
?>
代码如下:
<?php eval($GLOBALS['OOO0000O0']('JElJSUlJSUlJSUlJST0naGVhZGVyJzskSUlJSUlJSUlJbDExPSdpc19maWxlJzs='));
// $GLOBALS 已经定义的变量,$GLOBALS['OOO0000O0'] 值就是 base64_decode, 然后用它解码后面的字符串,结果 是 $IIIIIIIIIIII='header';$IIIIIIIIIl11='is_file'; eval 执行解出来的字符串,并得到相应的变量
?>
代码如下:
<?php /* */
$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};
// 同上可得 $OOO000O00 = 'fopen'
$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};
// $O0O000O00 = 'fget'
$O0O000O0O=$O0O000O00.$OOO000000{11};
// $O0O000O0O = 'fgetc'
$O0O000O00=$O0O000O00.$OOO000000{3};
// $O0O000O00 = 'fgets'
$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};
// $O0O00OO00 = 'fread'
$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};
// $OOO00000O = 'strtr'
$OOO0O0O00=__FILE__;
//取得当前文件路径和文件名
$OO00O0000=0x100;
eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NTI2KTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCdaQnhMYkZtQzYybHBja1hQYWRyR1VIOTRLN1FOUzVWdlJXenlpL2dPMEFUWU1EcXRvZkVJdStoZTNqd0oxOG5zPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs='));
/* 解出的结果是
$O000O0O00=$OOO000O00($OOO0O0O00,'rb');$O0O00OO00($O000O0O00,0x526);$OO00O00O0=$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,0x17c),'ZBxLbFmC62lpckXPadrGUH94K7QNS5VvRWzyi/gO0ATYMDqtofEIu+he3jwJ18ns=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));eval($OO00O00O0);
还原得并等价替换可得
$fp=fopen(__FILE__,'rb');
fread($fp,0x526);
$buf = fread($fp,0x17c);
$str=base64_decode(strtr($buf,'ZBxLbFmC62lpckXPadrGUH94K7QNS5VvRWzyi/gO0ATYMDqtofEIu+he3jwJ18ns=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
eval($str);
*/
return;?>eu~fQ\FRCgGpG@Lo`oQ2b8PcLBPcLBPcL+I5C2vSgHoNmFy7rRO4+8mrUfF4+1Opx6O6z3iGu8Pcb1oGIZopz6O6zoiGu8PcLZocb1olxdPGu1ocLZocb102b1oGIZoGu1ocxRiGIZocb1oGIZopxdPGIZoGIZocLZApx5QaOWcKi7DaIKENCByQ+WaK9dEd+H6XGdpk+FXUIH95/24VO/Aph5PcbFU9U+bS4dt7iH25rD07GkT5u0fXmjIPrSM2uFxaudFdi56rUApGb+XG+BdU/kUHH749F/QK92y7mHg7hWAQgDMN9jtSCFESed+5O53V40ocG6IkLUhkIRjlE1OlriAXh7yNm8I7rRiGIZocb1oGIZolGD/5gFMlxdPGIZoGIZoGIZAXo==xzd2rU/2rU/2rU/Mc9oRPrZidufPaiFcU+MOrU/2rU/2rU/2NLbf2+u02hfAKz8yNhjgQ9SqSmWo2EiJxg/g6xRirU/2rU/2rU/2NLFM6Lu8PrBuSOH/laAJ2b5cGu2BGFkN2u/2rU/2rU/2rU/2rr55lx2cNhkW5m/tNy0RQxjoQCZzlGD8xgHMShUlVEdCGb8xaUfG9E52rU/2rU/2rU/2rUiO4rRzGm8yK4dANh3w6m/qSedWNmozlGD8xR==kLHgJcZ[ZM
最新技术文章: