php批量设置IIS目录实例代码
代码如下 | 复制代码 |
<?php //获取文件目录列表,该方法返回数组 function getDir($dir='') { $dir=empty($dir) ? getcwd() : $dir; $dirArray[]=NULL; if (false != ($handle = opendir ( $dir ))) { $i=0; while ( false !== ($file = readdir ( $handle )) ) { //去掉"“.”、“..”以及带“.xxx”后缀的文件 if ($file != "." && $file != ".."&&!strpos($file,".")) { $dirArray[$i]=$file; $i++; } } //关闭句柄 closedir ( $handle ); } return $dirArray; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>IIS目录批量设置</title> <style> body { font:12px/22px "Microsoft YaHei", SimSun; } input, select, texteare, button { font-family:"Microsoft YaHei", SimSun; } </style> </head> <body> <?php if(empty($_POST)){ ?> <form action="" method="post" onsubmit="return check();"> <h2>当前目录:<?php echo getcwd();?></h2> <div> <fieldset> <legend>网站目录</legend> <div> <ul> <?php $dirArr=getDir(); if(is_array($dirArr)){ foreach($dirArr as $dir){ ?> <li> <label> <input name="directory[]" type="checkbox" value="<?php echo $dir;?>" /> <?php echo $dir;?></label> </li> <?php } } ?> </ul> <div> <input id="CheckALL" type="button" onclick="checkAll();" value="全选" /> <input id="NoCheckAll" type="button" onclick="noCheckAll();" value="全不选" /> <input id="inverse" type="button" onclick="inverseCheck()" value="反选" /> </div> </div> </fieldset> </div> <div> <fieldset> <legend>执行权限</legend> <div> <select name="Execute" onchange="Warning(this.value)"> <option value="0" selected="selected">无</option> <option value="1">纯脚本</option> <option value="2">脚本和可执行</option> </select> </div> </fieldset> </div> <div> <fieldset> <legend>站点信息</legend> <div> 站点ID: <input name="SiteId" id="SiteId" type="text" value="" /> </div> </fieldset> </div> <div style="margin-top:20px; padding-left:20px;"> <input type="submit" value="提交" /> </div> </form> <script type="text/javascript"> var all = document.getElementById("CheckALL"); //全选 var single = document.getElementsByName("directory[]"); //选项 var noAll = document.getElementById("NoCheckAll"); //不全选 var inverse = document.getElementById("inverse"); //反选 var SiteId = document.getElementById("SiteId"); //SiteId function checkTrue() { for (var i = 0; i < single.length; i++) { single[i].checked = true; } } function checkFalse() { for (var i = 0; i < single.length; i++) { single[i].checked = false; } } //全选 function checkAll() { if (all.disabled == false) { noAll.disabled = false; checkTrue(); } else { noAll.disabled = true; checkFalse(); } all.disabled = true; } //全不选 function noCheckAll() { if (noAll.disabled == false) { all.disabled = false; checkFalse(); } else { all.checked = true; checkTrue(); } noAll.disabled = true; } //反选 function inverseCheck() { noAll.disabled = false; all.disabled = false; for (var i = 0; i < single.length; i++) { single[i].checked = !single[i].checked; } } function Warning(value) { if(value==2){ alert('目录拥有 "脚本和可执行" 权限会很危险请慎重选择!') } } function check(){ var checkd_sum; checkd_sum=0; for (var i = 0; i < single.length; i++) { if(single[i].checked ==true){ checkd_sum++; } } if(checkd_sum==0){ alert('请先选择目录!'); return false; } if(SiteId.value==""){ alert('请输入站点ID!'); return false; } return true; } </script> <?php }else{ $directorys=@$_POST['directory']; $Execute=@$_POST['Execute']; $SiteId=@$_POST['SiteId']; $SiteId=trim($SiteId); if($Execute=0){ $ExecutePermission="AccessRead"; } if($Execute=1){ $ExecutePermission="AccessRead | AccessScript"; } if($Execute=1){ $ExecutePermission="AccessExecute | AccessRead | AccessScript"; } ?> <div> <pre> <?php if(is_array($directorys)){ foreach($directorys as $directory ){ echo <<<EOF <IIsWebDirectory Location ="/LM/W3SVC/{$SiteId}/root/{$directory}" AccessFlags="{$ExecutePermission}" > </IIsWebDirectory>rn EOF; } } ?> </pre> </div> <?php } ?> </body> </html> |
由于最近QQ垃圾信息群发严重,官方选择将WebQQ部分功能实现细节方面做了点手脚。其中获取好友的POST值多了一个hash参数。
这个hash是在js里加密完成的。
以下是js源码
代码如下 | 复制代码 |
<script type="text/javascript"> |
转成PHP版本处理,源码如下
代码如下 | 复制代码 |
<?php /** * 获取好友时的POST参数Hash算法 * * public * @param string $qq qq号 * @param string $ptwebqq cookies中的ptwebqq * @return string */ function get_hash($qq, $ptwebqq) { for ($a = $ptwebqq . "password error", $s = "", $j = array();;) { if (strlen($s) <= strlen($a)) { $s .= $qq; if ($s == strlen($a)) break; } else { $s = substr($s, 0, strlen($a)); break; } } for ($d = 0; $d < strlen($s); $d++) { $j[$d] = uniord(substr($s,$d)) ^ uniord(substr($a,$d)); } $a = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"); $s = ""; for ($d = 0; $d < count($j); $d++) { $s .= $a[$j[$d] >> 4 & 15]; $s .= $a[$j[$d] & 15]; } return $s; } /** * 模拟 JavaScript charCodeAt函数 * * protected * @param string $str * @return int */ function uniord($str) { list(, $ord) = unpack('N', mb_convert_encoding($str, 'UCS-4BE', 'UTF-8')); return |
$ord;
}
/* End of file commons.php */
代码如下 | 复制代码 |
<?php /P user:perm 替换指定用户的访问权限。 |
本文将通过IIS、APACHE、ASP、PHP几种服务器端或页面程序端分别讲解如何设置301重定向,先还是简单介绍下重定向。
301重定向:指的是一种非常重要的“自动转向”技术--其实谈不上技术,即网址重定向--用户访问一个地址或目录,可以指定跳转到另一个地址。
301重定向,这是所有重定向方法中唯一符合seo/seo.html" target="_blank">搜索引擎规则的重定向,这也是SEO中的一个基础名词,比方:一个站用www.111cn.net、111cn.net绑定,就会存在2个权重,如果将111cn.net重定向到www.111cn.net,就会权重集中,相应增加权重值。
1、IIS服务器上设置301重定向
准备工作:你要有服务器设置权限,可以随意开通新的虚拟空间!
第一,新建一个虚拟空间,将你需要进行重定向的域名与之解析绑定;
第二,我的电脑-->打开“控制面板”-->“管理工具”-->打开“Internet 信息服务”,左侧会有树形菜单,找到你的网站--右键“属性”--选择“主目录”选项卡,再选择“重定向到URL”,然后在地址框栏输入需要定向的目标域名,最后将选项卡中的“资源的永久重定向”选择上,点击“确定”完成操作。属性界面设置,如下图所示:
2、Unix/linux主机上apache设置301重定向
1)将不带WWW的域名转向到带WWW的域名下
代码如下 | 复制代码 |
Options +FollowSymLinks
RewriteEngine on RewriteCond %{HTTP_HOST} ^111cn.net [NC]
RewriteRule ^(.*)$www.111cn.net/301/[L,R=301] |
2)重定向到新域名
代码如下 | 复制代码 |
Options +FollowSymLinks
RewriteEngine on RewriteRule ^(.*)$www.111cn.net/301/ [L,R=301]
|
3)使用正则进行301转向,实现伪静态
代码如下 | 复制代码 |
Options +FollowSymLinks
RewriteEngine on RewriteRule ^article-(.+).html$ article.php?id=$1
将article.php?id=123这样的地址转向到article-123.html
|
3、ASP程序页面中设置301重定向代码
在公共头部文件或全局调用文件里,加上如下代码:
代码如下 | 复制代码 |
<%@ Language=VBScript %> <%
if request.ServerVariables("SERVER_NAME")!="www.111cn.net" then
Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.111cn.net"
Response.End end if
%>
|
原理:判断请求的server_name,是否与主目标网址一样,不一样则重定向
4、PHP程序页面中设置301重定向
代码如下:(比较完美的写法)
代码如下 | 复制代码 |
$host= 'www.111cn.net'; //你目标定向的网址 if ($_SERVER['HTTP_HOST'] != $host)//若不是则进行重定向,后面页面参数不变 { header("HTTP/1.1 301 Moved Permanently"); header("Location: http://{$host}{$_SERVER[REQUEST_URI]}"); } unset($host); |
之前一直在研究ajax+php的表单无刷新验证,主要是用在注册提交表单上面的,ajax技术的使用使访客对于网页的友好度大大增加,作为提升页面友好的最主要技术,ajax是必不可少的。
当然,ajax不仅仅只有表单的无刷新验证,还可以更好地应用到页面的其它地方,凡是无刷新的地方基本上都有ajax技术的身影,今天讨论的是ajax+php无刷新上传图片。
无刷新上传图片的技术常常应用在上传附件或图片上传,比如常见的QQ邮箱上传附件,163邮箱上传附件,QQ空间上传图片等,这类都是应用了ajax无刷新的技术,可以让我们在当前页看到上传的附件,而在一般的小站点后台,上传产品时,往往看不到上传的产品图片的情况,这样往往起不到很好的效果。
下面是一款ajax+php的无刷新上传图片的源码,这仅仅是一个实例,而修改这个实例便可以很好地应用在网页当中,为你的页面增加一款无刷新的图片上传效果吧,这样的效果很多,可以到网上去查找。
file.php文件
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> [$key], $uploadfile))){ |
fileupload.htm页面
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> var isIE = (document.all) ? true : false; var $ = function (id) { var Class = { var Extend = function(destination, source) { var Bind = function(object, fun) { var Each = function(list, fun){ //文件上传类 //整理一次 var fu = new FileUpload("uploadForm", "idFile", { ExtIn: ["gif","jpg"], $("idBtnupload").onclick = function(){ //用来添加文件列表的函数
$("idExt").innerHTML = fu.ExtIn.join(","); $("idBtndel").onclick = function(){ fu.Clear(); } //在后台通过window.parent来访问主页面的函数 </script> |
相关文章
- 今天小编就为大家分享一篇解决Pycharm的项目目录突然消失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-22
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
- 其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
- 本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
- 一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
- 微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
- 这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
- 小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
php导出csv格式数据并将数字转换成文本的思路以及代码分享
php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07- ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
- 本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
docker 启动elasticsearch镜像,挂载目录后报错的解决
这篇文章主要介绍了docker 启动 elasticsearch镜像,挂载目录后报错的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20