存档
09年的时候写过一个ASP输出分页页面的函数,分享两个ASP分页(页码)函数(http://www.miaoqiyuan.cn/p/asp-yema-fenye)。在开发中,省了不少力气,今天在些一个php的分页(页码)函数,供以后工作用。和ASP版本的参数,函数名都一样。
<?php
/*
#函数:csPage
#功能:返回页面列表
*/
Function csPage($iPage,$aPage,$urlStart,$urlEnd){
$tmp = "";
if($iPage == 1 && $aPage == 1){
$tmp = "<strong> 1/1 </strong>";
}else{
[...]
很早之前就想一套PHP无限级分类函数,供以后的项目用,今晚闲了无事,就写一个把。懒得动脑,就按以前的ASP无限级分类函数的思想写一个把。
/*
作者:苗启源(Miaoqiyuan.cn)
函数:getCatagory
功能:获得分类列表
参数:cat_arr -> 分类数组(Rscordset:id:分类编号,pid:上级分类,name:分类名称,childs:子分类)
cat_pid -> 上级分类编号
cat_childs [...]
现在php的项目,动不动就smarty。甚至有的朋友做个两三个页面的新闻系统,也要用smarty。今天按捺不做,谢谢我的看法。本文原文地址为:http://www.miaoqiyuan.cn/p/template-thinks,希望转贴的朋友留一个我的链接。
做个新闻系统,不用smarty,10KB以内的代码搞定,如果用smarty后,就要几百KB了。有些人可能会说不用模板,修改的时候不方便,或则需要每篇文章使用不同的模板,直接用php代码,就不好控制了,在这里给我大家分享一套另类的模板方法。
<?php
#init.php
#获取皮肤设置,如果不存在,则调用default.php
$skin = trim($_GET['skin']);
if(!isset($skin) || @$skin==”){
$skin = ’skin/default.php’;
}else{
$skin = ’skin/’.$skin.’.php’;
if(!is_file($skin)){
$skin = ’skin/default.php’;
}
}
?>
数据处理文件
<?php
[...]
最近,使用公司虚拟主机的客户老是抱怨网站被挂马,服务器安全方面我认为是没有问题的,问题只有可能出现在ftp上。查看服务器日志,果然没错,近期有大量的ftp登录失败的日志。
原因找到了,看看到底是那些空间出现了问题。于是模仿攻击这的方式,用php写的ftp猜解工具,今天测试了一下,结果让人触目惊心啊。考虑再三,本工具还是一改我往常的作风,不公开源代码了,原因嘛~太危险了,本工具一个小时能检测1800(我测试的服务器机房线路比较好,所以速度很快)个站点左右,出现安全隐患的竟然能达到300个站点左右,出现问题的站点竟然能占到1/6,如果被非法份子利用,跑10个小时,可能就有3000个站点遭殃了。
简单说一下功能,php 5.0开发的,
1、首先载入页面框架,提示输入一个域名
2、得到该服务器上的站点,调用myip.cn上的同服务器站点,返回列表。使用了easytemplate框架。
3、根据2的列表,依次执行猜解工作。每次猜解完一条信息,通过ajax返回工作进度,暂停0.5秒继续猜解。
猜解字典可自定义,一下密码均可被猜出:
同FTP名
域名去掉.(比如域名:www.baidu.com 密码为wwwbaiducom,baiducom)
123,1234,12345,123456,1234567,12345678,123456789,5201314,1314520,987654321,54321,88888888,000,0000,001,002,007,008,10th,1st,2nd,3rd,4th,5th,6th,7th,8th,9th,100,101,108,133,163,166,188,233,266,350,366,450,466,136,137,138,139,158,168,169,192,198,200,222,233,234,258,288,300,301,333,345,388,400,433,456,458,500,555,558,588,600,666,598,668,678,688,888,988,999,1088,1100,1188,1288,1388,1588,1688,1888,1949,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1997,1999,2000,2001,2002,2088,2100,2188,2345,2588,3000,3721,3888,4567,4728,5555,5678,5888,6666,6688,6789,6888,7788,8888,8899,9988,9999,23456,34567,45678,88888,654321,888888,6666,56789,1234567,12345678,737,777,1111,2222,3333,4321,computer,cpu,memory,disk,soft,y2k,software,cdrom,rom,admin,master,card,pci,lock,ascii,knight,creative,modem,internet,intranet,web,www,isp,unlock,ftp,telnet,ibm,intel,microsoft,dell,compaq,toshiba,acer,info,aol,56k,server,dos,windows,win95,win98,office,word,excel,access,unix,linux,password,file,program,mp3,mpeg,jpeg,gif,bmp,billgates,chip,silicon,sony,link,word97,office97,network,ram,sun,yahoo,excite,hotmail,yeah,sina,pcweek,mac,apple,robot,key,monitor,win2000,office2000,word2000,net,virus,company,tech,technology,print,coolweb,guest,printer,superman,hotpage,enter,myweb,download,cool,coolman,coolboy,coolgirl,netboy,netgirl,log,login,connect,email,hyperlink,url,hotweb,java,cgi,html,htm,home,homepage,icq,mykey,c++,basic,delphi,pascal,anonymous,crack,hack,hacker,chinese,vcd,chat,chatroom,mud,cracker,happy,hello,room,english,user,netizen,frontpage,agp,netwolf,usa,hot,site,address,mail,news,topcool
又好久没有更新日志了,上次谈到将工作用的脚本换成php,现在发现这是一个非常非常明智的选择。
在Linux也可以直接用php当作脚本,处理工作的事情。也算是“跨平台脚本”咯~~~
今天说一下JS压缩,呵呵,这种工具我可写不出来,但是网上牛人已经帮我们写出了相应的类:JavaScriptPacker(http://creativecommons.org/licenses/LGPL/2.1/)
我们直接调用就可以咯,比如将test_resource.js压缩成test.js。
<?php
#demo.php
require_once ‘class.JavaScriptPacker.php’;
$packer = new JavaScriptPacker(file_get_contents("./test_resource.js"), ‘Normal’, true, false);
file_put_contents("./test.js",$packer->pack());
?>
直接 php demo.php
最近准备放弃使用许久的vbscript作为处理工作方面问题,而转向PHP。
应该是ASP转向PHP把,怎么是vbscript转向php?这个我要说一下,处理工作方面问题,比如通过API导个数据…用ASP,PHP在IIS中执行肯定不行,写个VBScript脚本,cscript 脚本名 让他执行吧,别的不用关了。所以用脚本处理些数据转换、导入导出还是不错的选择。
VBScript的致命的缺点是不支持引用文件,对HTTP请求方便不是很强,正则、XML处理起来不方面,JSON作为数据载体时就等着傻眼把。这是后用php作为脚本也是一个不错的选择。扯得有点远了,换成了php,数据库还是Access怎么办?这个简单,直接用com创建adodb实例即可。
现在已经创建好了数据库,只填写了部分域名,要通过php到域名查询接口返回whois信息,并存到Access数据库中,Access字段名已对应返回数组中的索引相同。
<?php
set_time_limit(0);
#因为要链接web,使用我前几天写的myhttp类。
include(‘myhttp.clsss.php’);
#API操作,这里直接忽略,里边有个get_domain_info来获取API返回的数据,并处理成数组。
include(‘api.function.php’);
$conn = new COM("Adodb.Connection");
$conn -> open("provider=microsoft.jet.oledb.4.0;data source=D:\myweb\miaoqiyuan.cn\test\php-linkdb\domain.mdb");
$dlist = new COM("ADODB.Recordset");
$rs = new COM("ADODB.Recordset");
$dlist -> open("select [domain],[did] from [domain] where isupdate=0",$conn,1,1);
while(!$dlist -> eof()){
echo "下载域名数据[".$dlist['domain']."].\n";
$d=get_domain_info($dlist['domain']);
$rs -> open("select * from [domain] where did=".$dlist['did'],$conn,3,2);
foreach($rs -> fields as $k => $v){
if($k >= 6){
$myvalue = [...]