当前位置:  编程技术>php
本页文章导读:
    ▪Windows2003上使用IIS7 Express使用FastCgi运行php           先说一下背景,因为是自己租来的VPS管理代码、文档及跑一些自己用的一些服务程序,为了便宜又稳定就考虑租了台windows2003的vps,内存总共只1G,很捉襟见肘。  &nbs.........
    ▪PHP冒泡排序算法      基本概念 冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1 个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放.........
    ▪php 无限分类      无限分类是实际开发中经常用到的一种数据结构,一般我们称之为树形结构。题设:类似淘宝的商品分类,可以在任意分类设置其子类。 一、创建`type`数据表`id` 自增长`fid` int(11) 默认(0) .........

[1]Windows2003上使用IIS7 Express使用FastCgi运行php
    来源:    发布时间: 2013-11-07

     先说一下背景,因为是自己租来的VPS管理代码、文档及跑一些自己用的一些服务程序,为了便宜又稳定就考虑租了台windows2003的vps,内存总共只1G,很捉襟见肘。


     在Web服务这一块,同一台装了2003的服务器上,需要跑PHP及ASP.NET,IIS6上安装了PHP后,加装Rewrite组件,可以较正常的跑wordpress,但后来由于rewrite组件过期了,去网上找了各种版本的安装,仍然无用,总是提示已过期。


     于是只好考虑用用nginx做的反向代理,动态解析转向到IIS6及Apache上,但这样整体内存占用看起来有点大,于是停用了Apache,转而用nginx加PHP-cgi.exe来跑wordpress,发现访问速度似乎提升了一些,但是php进程动不动就自动退出,于是又写个管理php-cgi.exe的守护进程。后来,nginx又不正常了,时不时出点小毛病,而php-cgi用守护进程只启动一个进程,也时常出问题,如果启动一堆的话,加上守护进程与php-cgi所占用的内存,还不如直接nginx转apache算了。


     总之,确定在windows下,想好好跑php,又要节省内存,真的不容易。


     然后考虑到IIS7.5 Express可以在WIN2003上跑,不但能以fastcgi的方式支持php,还自带Rewrite组件,只需简单改改web.config的rule规则就可以了。


     于是百度下载了IIS7.5 Express后,安装,还需要对applicationHost.config进行配置,首先得找到这个文件在哪里,如果能在"我的文档"中IIS7Express目录下找到,那就是它了,否则应该就是在IIS7 Express的安装目录下。


     1、先修改:defaultDocument节,加入 <add value="index.php" />



<defaultDocument enabled="true">
<files>
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="index.html" />
<add value="iisstart.htm" />
<add value="default.aspx" />
<add value="index.php" />
</files>
</defaultDocument>


 


     2、找到fastcgi节。



<fastCgi>
<application fullPath="C:\php\php-cgi.exe" monitorChangesTo="php.ini" activityTimeout="600" requestTimeout="600" instanceMaxRequests="10000">
<environmentVariables>
<environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" />
<environmentVariable name="PHPRC" value="C:Program Files (x86)iis expressPHPv5.4" />
</environmentVariables>
</application>
</fastCgi>


   3、找到handlles,加入



 <add name="PHP_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\PHP\php-cgi.exe" resourceType="Either" />


    尤其要注意的一是,这一句最好加在最前面,也就是在<handlles>下面的第一句,避免被其它Handle抢先处理了。


    以上配置中,C:\php\php-cgi.exe 的部分替换成自己的php文件夹中的php-cgi.exe的位置。


  4、在<site>配置节下,直接修改站点信息,或直接用appcmd.exe add site来添加站点。


 


  5、找到诸如wordpress的安装文件夹,创建一个web.config文件,在configuration配置节下,添加Gzip压缩规则。



<system.webServer>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>


 6、同样在web.config中,Wordpress的rewrite完整的web.config文件内容如下:



<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="wordpress" patternSyntax="Wildcard">
<match url="*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
<system.webServer>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>
</configuration>


 这样就完全配置完毕了,然后在IIS7 Express目录下,找到IISExpress.exe,直接双击运行,或者用命令行来执行指定加载哪个站点. 



iisexpress.exe /site:'站点名称1"
iisexpress.exe /site:'站点名称2"


 访问一下,就会发现访问速度比在windows下使用apache要快得多,而且少跑一个nginx,内存占用整体上也少了很多。

本文链接


    
[2]PHP冒泡排序算法
    来源:    发布时间: 2013-11-07

基本概念 
冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1 个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。 
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。 
用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复 9,8,…,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,…,9,对于每一个i, j的值依次为1,2,…10-i。 

产生 
在许多程序设计中,我们需要将一个数列进行排序,以方便统计,常见的排序方法有冒泡排序,二叉树排序,选择排序等等。而冒泡排序一直由于其简洁的思想方法和比较高的效率而倍受青睐。 

排序过程 
设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上”漂浮”,如此反复进行,直至最后任何两个气泡都是轻者在上,重者在下为止。


排序实现过程如下: 
49   38   65   97   76   13   27 
38   49   65 97   76   13   27               比较第1个和第2个数,小的放前边,大的放后边 38   49   65   97   76   13   27               比较第2个和第3个数,小的放前边,大的放后边 38   49   65   97   76   13   27               比较第3个和第4个数,小的放前边,大的放后边 38   49   65   76   97   13   27               比较第4个和第5个数,小的放前边,大的放后边 38   49   65   76   13   97   27               比较第5个和第6个数,小的放前边,大的放后边 38   49   65   76   13   27   97               比较第6个和第7个数,小的放前边,大的放后边 至此,第一趟比较结束,得到以下排序: 38   49   65   76   13   27   97   
然后按照第一趟排序的方法继续比较,直到完成排序。



$arr = array(345,4,17,6,52,16,58,69,32,8,234); 
for($i=1;$i<count($arr);$i++){
for($j=count($arr)-1;$j>=$i;$j--){
if($arr[$j]<$arr[$j-1]){
$temp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $temp;
}
}
}


 

本文链接


    
[3]php 无限分类
    来源:    发布时间: 2013-11-07

无限分类是实际开发中经常用到的一种数据结构,一般我们称之为树形结构。


题设:类似淘宝的商品分类,可以在任意分类设置其子类。


 


一、创建`type`数据表


`id` 自增长


`fid` int(11) 默认(0) ,父节点id


`name` varchar(50),分类名称



CREATE TABLE `type` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fid` int(11) NOT NULL DEFAULT '0',
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
)


 


二、添加


我们先添加几个顶级分类



INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '0', '手机');
INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '0', '电脑');
INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '0', '鞋子');
INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '0', '衣服');


这里fid=0是代表顶级分类


 


接着我们为{电脑}添加几个个子分类



INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '2', '台式'), (NULL, '2', '笔记本');


这里fid=2,2这个id是分类{电脑}的id,如果是添加鞋子的子分类则fid=3


同理我们为笔记本添加子分类则fid=6



INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '6', 'ausu'), (NULL, '6', 'hp');


 


三、删除


如果我们想删除{笔记本}这个分类,很简单



DELETE FROM `type` WHERE `id`=6


{笔记本}的子分类我们也要记得做相应的处理



function del($fid) {
$sql="SELECT * FROM `type` WHERE `fid`=$fid";
$rs=mysql_query($sql);

for ($i = 0; $i < count($rs); $i++) {
$sql="DELETE FROM `type` WHERE `id`={$rs[$i]['id']}";
mysql_query($sql);

del($rs['id']);//递归
}
}

del(6);//执行操作


这里你也许你会疑惑为什么那么麻烦用递归,而不是直接这样删除



DELETE FROM `type` WHERE `fid`=6


这样我们不就可以直接删除{ausu}、{hp}?但是假设{ausu}有一个子分类{a1},{a1}也有一个子分类{a2},如果不用递归我们就无法彻底删除数据。


 


三、查找


1.查找{电脑}的子分类



SELECT * FROM `type` WHERE `fid`=2


2.查找{电脑}的所有子分类



function sel($fid) {
$sql="SELECT * FROM `type` WHERE `fid`=$fid";
$rs=mysql_query($sql);

for ($i = 0; $i < count($rs); $i++) {
echo $rs[$i]['name'];

sel(
    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
jquery iis7站长之家
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3