php 控制iis 404出错页面
<?
# PHP控制站点程序
#
# 编写人:韩湘子
#
# 邮箱:hanxiangzi@gmail.com
#
# MSN:hanxiangzi@gmail.com
#
# QQ:220670
#
# 欢迎大家互相联系讨论
?>
<link href="image/css.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
background-color: #D4D0C8;
}
-->
</style>
<?php
$Site = New Com("IIS://Localhost/w3svc/".$ServerID);
iF($Submit){
$Site->HttpErrors = "404,*,Url,".$httperr;
$Site->SetInfo();
}
?>
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td><a href="3.php"><strong>返回主机列表</strong></a></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td><a href="33.php?ServerID=<?php echo $ServerID;?>">返回主机管理</a></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
<form action="?ServerID=<?php echo $ServerID;?>" method="POST">
设置404错误 <input type=input value="" size=80 name="httperr"><input type="Submit" name="Submit" value="提交">
<br>格式:/路径/文件.htm,例如:/404.htm
</form>
class Google_API_translator {
public $out = "";
function translate() {
$this->out = "";
$text = urlencode("computer");//要翻译的单词
$google_translator_url = "http://translate.google.com/translate_a/t?client=t&text=".$text."&sl=en&tl=zh_CN";
//拼凑google翻译的api url
$gphtml = $this->postPage(array("url" => $google_translator_url));
$this->out = $gphtml;
return $this->out;
}
function postPage($opts) {
$html = "";
if($opts["url"] != "") {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $opts["url"]);
$html = curl_exec($ch);
if(curl_errno($ch)) $html = "";
curl_close ($ch);
}
return $html;
}
}
$g = new Google_API_translator();
$g->translate();
很完美,返回的结果中没有任何编码问题。从google返回的中文编码完全正确。
接下来,能不能反向翻译,从中文到英文哪?
class Google_API_translator {
public $out = "";
function translate() {
$this->out = "";
$text = urlencode("计算机");//要翻译的单词
$google_translator_url = "http://translate.google.com/translate_a/t?client=t&text=".$text."&sl=zh_CN&tl=en";
echo $google_translator_url;
$gphtml = $this->postPage(array("url" => $google_translator_url));
$this->out = $gphtml;
return $this->out;
}
function postPage($opts) {
$html = "";
if($opts["url"] != "") {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $opts["url"]);
$html = curl_exec($ch);
if(curl_errno($ch)) $html = "";
curl_close ($ch);
}
return $html;
}
}
$g = new Google_API_translator();
$g->translate();
问题出现了,返回的是一个乱码。诡异的是,这次接受的是google发送过来的英文单词,怎么会有编码错误?
是php的curl无法发送unicode编码或者google在接受的过程中出现了问题吗? 复制PHP内容到剪贴板 PHP代码:echo $google_translator_url;
得到的url是 复制PHP内容到剪贴板 PHP代码:http://translate.google.com/translate_a/t?client=t&text=%E8%AE%A1%E7%AE%97%E6%9C%BA&sl=zh_CN&tl=en
直接把这个url输入浏览器的地址栏,没有任何问题(IE,Firefox均能通过)。
假设途中unicode的传送出现了解析方面的问题,在api的url上更改了一下,把"&sl=zh_CN&tl=en"更改为完全错误的参数 复制PHP内容到剪贴板 PHP代码:http://translate.google.com/translate_a/t?client=t&text=%E8%AE%A1%E7%AE%97%E6%9C%BA&sl=en&tl=en
奇怪了这次php页面倒是能够接受到google发回来的中文字符串,但是死活就是无法显示使用正确的编码参数google发送过来结果。
php控制iis设置默认文档,我们前面讲过了用php 的new com接口来设置iis的默认文档。<?
# PHP控制站点程序
#
# 编写人:韩湘子
#
# 邮箱:hanxiangzi@gmail.com
#
# MSN:hanxiangzi@gmail.com
#
# QQ:220670
#
# 欢迎大家互相联系讨论
?>
<link href="image/css.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
background-color: #D4D0C8;
}
-->
</style>
<?php
$Site = New Com("IIS://Localhost/w3svc/".$ServerID);
iF($Submit){
$Site->DefaultDoc = $DefaultDocList;
$Site->SetInfo();
}
?>
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td><a href="3.php"><strong>返回主机列表</strong></a></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td><a href="33.php?ServerID=<?php echo $ServerID;?>">返回主机管理</a></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
<form action="?ServerID=<?php echo $ServerID;?>" method="POST">
请输入默认文档,以英文符号,隔开 <input type=input value="<?php echo $Site->DefaultDoc;?>" size=80 name="DefaultDocList"><input type="Submit" name="Submit" value="提交">
</form>
<?
# PHP控制站点程序
#
# 编写人:韩湘子
#
# 邮箱:hanxiangzi@gmail.com
#
# MSN:hanxiangzi@gmail.com
#
# QQ:220670
#
# 欢迎大家互相联系讨论
?>
<link href="image/css.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
background-color: #D4D0C8;
}
-->
</style>
<table width="980" border="0" cellpadding="5" cellspacing="1" bgcolor="#000000">
<tr height=26>
<td width="177" bgcolor="#E8E6E1">站点名称</td>
<td width="229" bgcolor="#E8E6E1">绑定域名</td>
<td width="210" bgcolor="#E8E6E1">网站目录</td>
<td width="116" bgcolor="#E8E6E1">标识符</td>
<td width="97" bgcolor="#E8E6E1">站点状态</td>
<td colspan="2" bgcolor="#E8E6E1"><div align="center">管理</div></td>
</tr>
<?php
$LocalHostObject = New Com ("IIS://localhost/w3svc") ;
//删除站点
iF($Opt=="del"){
$LocalHostObject->Delete("IIsWebServer",$ServerID);
echo "<script>window.location='3.php';</script>";
}
//启动和停止站点
iF($Opt=="Status"){
$Site2 = New Com ("IIS://LocalHost/w3svc/".$ServerID);
$Site2->$Status;
}
//创建新站点
iF($Submit){
//创建目录
// mkdir(stripslashes($ServerDir));
//添加用户
$usernameobj = New Com("WinNT://iim");
$user = $usernameobj->Create("user",$ServerComm);
//设置用户名
$user->SetInfo();
//设置密码
$user->SetPassword($ServerComm);
// $user->UserFlags('&H0040');
$user->SetInfo();
$usernameobj1 = New Com("WinNT://iim/".$ServerComm);
$user->Description ="本用户名由iiM在线管理系统创建.";
$user->SetInfo();
#就差一个把用户加载到目录上的权限问题了################################################################################################
//创建站点
$iissite = $LocalHostObject->Create("IIsWebServer",$ServerID);
$aa = explode(",",$ServerBin);
// //先设定站点的基本资料
$iissite->ServerBindings = $aa;
$iissite->ServerComment = $ServerComm;
$iissite->AnonymousUserName = $ServerComm;
$iissite->AnonymousUserPass = $ServerComm;
$iissite->KeyType = "IIsWebServer";
$iissite->EnableDefaultDoc = True;
$iissite->DefaultDoc = "default.htm,default.asp,index.htm,index.html";
$iissite->LogFileDirectory = "d:\";
$iissite->MaxBandwidth = '102400';
$iissite->MaxConnections = '100';
$iissite->LogType = "0";
$iissite->AppIsolated = 0;
$iissite->AuthBasic = False;
$iissite->AuthNTLM = True;
$iissite->HttpErrors = "404,*,FILE,C:WINDOWShelpiisHelpcommon404b.htm";
//加上脚本映射
foreach($scriptmapsubmit as $script){
Switch($script){
Case "asp";
$sc[] = ".asa,C:WINDOWSsystem32inetsrvasp.dll,5";
$sc[] = ".asp,C:WINDOWSsystem32inetsrvasp.dll,5";
break;
Case "php";
$sc[] = ".php,E:softphp-5.2.3-Win32(1)php5isapi.dll,5";
$sc[] = ".php3,E:softphp-5.2.3-Win32(1)php5isapi.dll,5";
$sc[] = ".php4,E:softphp-5.2.3-Win32(1)php5isapi.dll,5";
$sc[] = ".php5,E:softphp-5.2.3-Win32(1)php5isapi.dll,5";
$sc[] = ".php6,E:softphp-5.2.3-Win32(1)php5isapi.dll,5";
break;
Case "cgi";
echo "cgi<br>";
break;
Case "aspnet";
echo "asp.net<br>";
break;
Case "html";
echo "html";
break;
}
}
$iissite->ScriptMaps = $sc;
$iissite->SetInfo();
//再设定站点目录
$iisdir = $iissite->Create("IIsWebVirtualDir","ROOT");
$ServerDir1 = stripslashes($ServerDir);
$iisdir->Path = $ServerDir1;
$iisdir->AppCreate(True) ;
$iisdir->AccessRead = True;
$iisdir->EnableDirBrowsing = False;
//允许父路径,也就是允许.
$iisdir->AspEnableParentPaths = True;
$iisdir->AccessScript = True;
$iisdir->AppFriendlyName = "默认应用程序";
$iisdir->SetInfo();
//启动站点
$Site1->Start;
echo "<script>window.location='3.php';</script>";
}
//列出所有网站
ForEach($LocalHostObject as $WebSiteName){
iF($WebSiteName->Class == "IIsWebServer"){
$Site = New Com ("IIS://localhost/w3svc/".$WebSiteName->Name) ;
//站点状态
$SiteStatus1 = $Site->Status ;
Switch($SiteStatus1){
Case "2" ;
$SiteStatus = "<a href=?Opt=Status&Status=stop&ServerID=$Site->Name>正常</a>" ;
break;
Case "6" ;
$SiteStatus = "<a href=?Opt=Status&Status=start&ServerID=$Site->Name><font color=red>暂停</font></a>" ;
break;
Case "4" ;
$SiteStatus = "<a href=?Opt=Status&Status=start&ServerID=$Site->Name><font color=red>停止</font></a>" ;
break;
}
?>
<tr height=26>
<td bgcolor="#F4F3F2" ><?php Echo $Site->ServerComment ; ?></td>
<td bgcolor="#F4F3F2">
<?php
//得出绑定的域名
$BinDings = $Site->ServerBinDings;
ForEach($BinDings as $BinDing){
List($ip, $Port, $Domain) = Explode(":",$BinDing);
Echo $Domain ."<br>";
}
?> </td>
<td bgcolor="#F4F3F2">
<?
//网站目录
$getRootDir = $Site->GetObject("IIsWebVirtualDir","ROOT");
echo $getRootDir->Path;
?></td>
<td bgcolor="#F4F3F2"><?php Echo $Site->Name ; ?></td>
<td bgcolor="#F4F3F2"><?php Echo $SiteStatus ; ?></td>
<td width="40" bgcolor="#F4F3F2"><div align="center"><a href=?Opt=del&ServerID=<?php Echo $Site->Name?>>删除</a></div></td>
<td width="33" bgcolor="#F4F3F2"><div align="center"><a href=33.php?ServerID=<?php Echo $Site->Name ; ?>>管理</a></div></td>
</tr>
<?php
}
}
unset($LocalHostObject);
unset($Site);
unset($Site1);
unset($Site2);
?>
</table>
<form id="form1" name="form1" method="post" action="">
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td width="8%">站点名称</td>
<td width="92%"><input type="text" name="ServerComm" /></td>
</tr>
<tr>
<td>站点目录 </td>
<td><input type="text" name="ServerDir" value="F:user"/></td>
</tr>
<tr>
<td>站点ID号 </td>
<td><input type="text" name="ServerID"/></td>
</tr>
<tr>
<td>Serverbin</td>
<td><textarea name="ServerBin" cols="80" rows="5"></textarea></td>
</tr>
<tr>
<td>脚本映射</td>
<td><input name="scriptmapsubmit[]" type="checkbox" id="scriptmapsubmit" value="asp" />
ASP
<input name="scriptmapsubmit[]" type="checkbox" id="scriptmapsubmit" value="php" />
PHP
<input name="scriptmapsubmit[]" type="checkbox" id="scriptmapsubmit" value="cgi" />
CGI
<input name="scriptmapsubmit[]" type="checkbox" id="scriptmapsubmit" value="aspnet" />
ASP.NET
<input name="scriptmapsubmit[]" type="checkbox" id="scriptmapsubmit" value="html" checked="checked" />
HTML</td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Submit" /></td>
<td> </td>
</tr>
</table>
</form>
<?php
# PHP控制IIS的相关属性
# 收集人:韩湘子
# 邮箱:hanxiangzi@gmail.com
# MSN:hanxiangzi@gmail.com
# QQ:220670
/*站点属性和使用方法*********************************************************/
$LocalHostObject = New Com ("IIS://localhost/w3svc") ;
$Site = $LocalHostObject->Create("IIsWebServer",站点标识符);
//站点类型
$Site->Class;
//站点名称
$Site->ServerComment;
//站点绑定的IP:端口:域名
$Site->ServerBinDings;
//站点标识符
$Site->Name;
//获取站点主目录
$Site->GetObject("IIsWebVirtualDir","ROOT");
$Site->Path;
//匿名访问时所使用的帐号
$Site->AnonymousUserName;
//匿名访问时所用帐号的口令
$Site->AnonymousUserPass;
//日志文件的目录
$Site->LogFileDirectory;
//是否允许FrontPage扩展
$Site->FrontPageWeb = True;
//站点的类型
$Site->KeyType = "IIsWebServer";
//站点描述
$Site->bewrite;
//允许使用的带宽,1024=1K,如果是100K的话等于102400
$iissite->MaxBandwidth = '102400';
//允许IIS同时多少个并发数,也就是平常说的IIS连接数
$iissite->MaxConnections = '100';
//是否开通日志
$iissite->LogType = "0"; //0为不开通,1为开通W3C格式的日志
//指定404错误,Url为当前站点的文件
$iissite->HttpErrors = "404,0,Url,/404.htm";
//指定404错误,FILE为当前服务器绝对路径的文件
$iissite->HttpErrors = "404,0,FILE,/404.htm";
//指定脚本映身,有关这下面的扩展名映射可以查看默认网站的一些,复制过来即可,下面是用PHP做的例子
$iissite->ScriptMaps = ".php,E:softphp-5.2.3-Win32(1)php5isapi.dll,5,Get,HEAD";
/*站点的默认文档*********************************************************/
//是否允许默认文档
$Site->EnableDefaultDoc = True;
//站点的默认文档
$Site->DefaultDoc = "index.php,index.html"; //以英文标点,隔开
/*站点的运行状态*********************************************************/
$SiteStatus = New Com ("IIS://LocalHost/w3svc/".$ServerID);
//站点运行状态
$SiteStatus->Status;
//运行状态返回以下几个整数值:
//1代表网站运行状态为“正在启动”
$SiteStatus->Status = 1;
//2代表网站运行状态为“已经启动”
$SiteStatus->Status = 2;
//3代表网站运行状态为“正在停止”
$SiteStatus->Status = 3;
//4代表网站运行状态为“已经停止”
$SiteStatus->Status = 4;
//5代表网站运行状态为“正在暂停”
$SiteStatus->Status = 5;
//6代表网站运行状态为“已经暂停”
$SiteStatus->Status = 6;
//7代表网站运行状态为“正在继续”,就是暂停后的继续运行
$SiteStatus->Status = 7;
//-1代表出错
$SiteStatus->Status = -1;
//启动站点
$SiteStatus->Start;
//停止站点
$SiteStatus->Stop;
//继续站点,就是暂停后的继续运行
$SiteStatus->Continue;
//暂停站点
$SiteStatus->Pause;
/*站点的应用程序设置*********************************************************/
$iisdir = $Site->Create("IIsWebVirtualDir","ROOT");
//设置站点的应用程序可读,就是什么也不能执行
$iisdir->AccessRead = True;
//设置站点的应用程序可执行,只包括脚本,不包括执行文件
$iisdir->AccessScript = True;
//设置站点的WEB目录可写,这个很危险
$iisdir->AccessWrite = True;
//设置站点的应用程序可执行,包括脚本和执行文件
$iisdir->AccessExecute = True;
//设置站点的目录
$iisdir->Path = "d:webuserwebdir";
//创建新的应用程序
$iisdir->AppCreate(True) ; //在这里不能 = True;,只能用(True)
//允许父路径,也就是允许.
$iisdir->AspEnableParentPaths = True;
/*应用程序池相关设置*********************************************************/
$appList = New Com ("IIS://Localhost/w3svc/AppPools");
//列出应用程序池的名称
$appList->Name;
//列出应用程序池的状态
$appList->AppPoolState;
//运行状态返回以下几个整数值:
//1代表应用程序池运行状态为“正在启动”
$appList->Status = 1;
//2代表应用程序池运行状态为“已经启动”
$appList->Status = 2;
//3代表应用程序池运行状态为“正在停止”
$appList->Status = 3;
//4代表应用程序池运行状态为“已经停止”
$appList->Status = 4;
//5代表应用程序池运行状态为“正在暂停”
$appList->Status = 5;
//6代表应用程序池运行状态为“已经暂停”
$appList->Status = 6;
//7代表应用程序池运行状态为“正在继续”,就是暂停后的继续运行
$appList->Status = 7;
//-1代表出错
$appList->Status = -1;
/*WinNT用户和密码相关设置*********************************************************/
$usernameobj = New Com("WinNT://iim");
//创建一个系统用户
$user = $usernameobj->Create("user",$UserName);
//设置用户密码
$user->SetPassword($UserPass);
//设置用户全名
$user->FullName = "用户全名";
//设置用户说明
$user->Description = "用户说明";
//设置用户密码永久正确
$user->UserFlags = &H10000
//设置用户下次登入时须变更密码
$user->UserFlags = &H20000
//设置使用者不得变更密码
$user->UserFlags = &H0040
//设置用户帐户暂时停用
$user->UserFlags = &H0002
//以上动作创建一个系统用户
/*执行相关动作*********************************************************/
//执行以上的动作,但在网站运行状态里边的start,stop,pause,continue这四个动作中无须执行->SetInfo();
$Object->SetInfo(); //$Object为你所创建的组件名称
?>
相关文章
PHP传值到不同页面的三种常见方式及php和html之间传值问题
在项目开发中经常见到不同页面之间传值在web工作中,本篇文章给大家列出了三种常见的方式。接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大...2015-11-24- 直接为大家介绍制作过程,希望大家可以喜欢。HTML结构该页面切换特效的HTML结构使用一个<main>元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进...2015-10-30
- 这篇文章主要介绍了解决vue刷新页面以后丢失store的数据问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
- 这篇文章主要介绍了解决vuex数据页面刷新后初始化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
- 对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题...2015-10-21
- 这篇文章主要介绍了JavaScript 获取滚动条位置并将页面滑动到锚点的的相关资料,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下...2021-02-09
- 这篇文章主要介绍了Mybatis plus中使用in查询出错的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-06
- 这篇文章主要介绍了java后台实现js关闭本页面,父页面指定跳转或刷新操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-16
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 'WIN-8IVSNAQS8T7\Administrator' 的信息,错误代码 0x534。 [SQLSTATE 42000] (ConnIsLoginSysAdmin)...2021-07-15- 这篇文章主要给大家介绍了关于微信小程序页面间传值的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-09
- 这篇文章主要介绍了vue实现在进行增删改操作后刷新页面,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-05
- 这篇文章主要介绍了Pycharm 跳转回之前所在页面的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-05
- 这篇文章主要介绍了Tomcat正常访问localhost报404问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
- 这篇文章主要介绍了 判断页面访问方式电脑或者移动端的相关资料,这里提供了三种方法,需要的朋友可以参考下...2016-10-03
- bootstrap布局是应用得很广泛的一种网页布局方法,下面通过本文给大家介绍bootstrap页面缩小变形的快速解决办法,需要的朋友参考下吧...2017-02-08
- 这篇文章主要介绍了在vue中实现嵌套页面(iframe),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-31
- 这篇文章主要介绍了微信小程序 注册页面的相关资料,需要的朋友可以参考下...2016-10-20
- 这篇文章主要介绍了jQuery中通过ajax的get()函数读取页面的方法,需要的朋友可以参考下...2016-03-01
- 这篇文章主要介绍了解决IDEA误删out目录下的文件导致404无法访问的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-09
- 这篇文章主要教大家如何在20分钟内成功编写bootstrap响应式页面,其实很简单,培养大家分分钟开发出一个高大上的页面能力,感兴趣的小伙伴们可以参考一下...2016-05-14