自动实现php4和php5环境的切换......

 更新时间:2016年11月25日 16:08  点击:1715

 

因为php4早就end了,所以是有必要切换到php5的了,所以有时调试需要整合一下了

做了一个脚本,让他们批处理一下就能自动切换了,方便的说

环境:

window XP SP2 +apache2.2.6 + PHP4.4.7 +PHP5.2.5

PHP4目录:E:webphp4

PHP5目录:E:webphp5

APACHE目录:E:webApache2.2

 

1.需要两个apache的httpd.conf文件,,因为apache2.2.6对php4.47支持不好,所以要另外加插件了.(参考:http://pakapaka.jp/softwareinfo/146.html)

php4的为: httpd_php4.conf

PHP5为:httpd_php5.conf

2. 准备两个批处理文件就可以了

变成php4:

 



copy php.ini c:windows
copy php4ts.dll c:windows
copy php4ts.lib c:windows
copy E:webApache2.2confhttpd_php4.conf E:webApache2.2confhttpd.conf

net stop apache2.2
net start apache2.2

 

 

变成php5

 



del  c:windowsphp.ini
del c:windowsphp4ts.dll 
del  c:windowsphp4ts.lib

copy E:webApache2.2confhttpd_php5.conf E:webApache2.2confhttpd.conf

net stop apache2.2
net start apache2.2

 

 

当然以上目录都是放在php4根目录下的,你只要根据目录修改就可以了




歌道“最近比较烦”,我云“最近比较忙”,但无论烦与忙,都不能阻止我对技术的追求,亦不能打断我要做中国开源事业的脚步。

作为我提出已久的jwork框架,终于,于2007年未,形成了php第一版。

Jwork框架分为三种语言:
Java版
.Net版
PHP版

目前,java和.net版处于研发阶段。php版jwork v1.0 for php初步计划于2008年2月1日正式开源。

Jwork框架的特点:
1、和其它框架相比,Jwork框架不需配置,不改变原有开发习惯。
2、Jwork框架是开发的经验集,集成了软件中开发中常用的API。
3、Jwork框架集成了Jpage分页,AJAX,HTML编辑器等。
4、充分提高开发效率,便于小组开发、协同开发。


Jwork v1.0 for php
jwork v1.0 for php是用于php开发的一个框架集。现将其功能简介如下:

1、集成Jpage,最优化的分页方案。
Jpage解决了海量和普通查询的需求,优化了软件结构,一句sql即可分页,为互联网上现有的最佳分页解决方案。

2、集成数据层DAO,最简单的数据操作。
一般而言,开发必要操作数据库。开发php就意味着要对mysql操作。出于此,Jwork框架v1.0集成了对mysql操作的封装。
对于插入数据,不需要写sql语句,只需指定列名,控件名即可。
对于修改数据,可实现表单自动回填,不需去给控件赋值。

3、集成了ajax框架,一句话即可实现ajax。
随着web2.0的发展,ajax的应用越来越广,jwork框架采用最原始、清晰的ajax实现,即简单方便的实现了ajax,又让ajax的各过程清晰可见。

4、集成众多研发者的多年开发经验。
jwork框架的一些工具类,时间类、上传类、邮箱类等API,集成了众多研发者的Java、.NET、PHP、ASP的web开发经验,你在开发中常遇到需求实现,在jwork框架中均有收录。

5、集成了开发中常用的JS和PHP验证方法,如email格式、手机格式、身份证格式的验证。
时间就是金钱,提供开发效率,不但可以让你收获财富,更可以让你轻松应对开发工作。



Jwork部分演示:


添加、修改演示:

function Add()
{
 $data = new MysqlDao(); 
 $filed="code_name,code_lang,user_id,

CGI&PHP

向CGI传递数据
===============================================
环境变量 REQUEST_METHOD
GET:
<a href="cgi-bin/myprog.exe?lname=blow&fname=joe">
QUERY_STRING
POST:由form产生传递的数据
-环境变量CONTENT_LENGTH表明长度
-CGI程序从stdin读入数据
===============================================

其他有用的环境变量
===============================================
HTTP_USER_AGENT 浏览器的软件版本
REMOTE_ADDRESS 浏览器的IP地址
REMOTE_HOST 浏览器的机器名
===============================================

CGI输出的数据
===============================================
非分析头标
-HTTP/1.0 200 OK
-Server:NCSA/1.0a6
-Content-type:text/html
-...
===============================================

内容类型MIME   text/css
===============================================
Application
Audio
Image
Text
Video
Multipart

===============================================


PHP
========================================================================
基本语法
===============================================
1 <?php echo("if you want to serve XHTML or XML documents,do you liken");?>
2 <? echo("this is the simplest,an SGML processing instructionn")?>
  <?=expression?>This is a shortcut for"<?echo expression?>"
3 <script language="php">
    echo("some editors(like FrontPage) don''t like processing instruction");
  </script>
4 <%echo("You may optionally use ASP-style tags");%>
  <%=$variable;#This is a shortcut for"<%echo ..."%>
===============================================

数据类型
===============================================
四种标量类型
 布尔型 boolean
 整型 integer
 浮点型 float
 字符串 string 可以用单引号 双引号 定界符
两种复合类型
 数组 array
 对象 object
最后是两种特殊类型
 资源 resource
 NULL
===============================================

定界符
===============================================
$str=<<<EOD
Example of string
spanning multiple lines
usin

<


1. 尽量采用大量的PHP内置函数。
2. echo 比 print 快。
3. 不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?
4. 在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。
5. 注销那些不用的变量尤其是大数组,以便释放内存。
6.  并非要用类实现所有的数据结构,数组也很有用。
7.   $row[‘id’]的效率是$row[id]的7倍。
8. 在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。
9. 如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。
10. 检查是否能用strncasecmp,strpbrk,stripos函数代替正则表达式完成相同功能。
11. str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。
12. 如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。
13.  使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。
14.  用@屏蔽错误消息的做法非常低效。
15.   打开apache的mod_deflate模块。
16.   数据库连接当使用完毕时应关掉。
18.   错误消息代价昂贵。
19.  尽量不要在for循环中使用函数,比如for ($x=0; $x < count($array); $x)每循环一次都会调用count()函数。
20.   在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。
21.   递增一个全局变量要比递增一个局部变量慢2倍。
22.   递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。
23.   递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。
24.    仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。
25.  方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。
26.  派生类中的方法运行起来要快于在基类中定义的同样的方法。
27.  调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。
28.  用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会。当然,只有当你不需要在字符串中包含变量时才可以这么做。
29.  用echo 输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。
30.  Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。
31.  除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。
32. 尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码(OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。
33. 当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码。
Ex.(举例如下)
if (strlen($foo) < 5) { echo "Foo is too short"; }
vs.(与下面的技巧做比较)
if (!isset($foo{5})) { echo "Foo is too short"; }
调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。
<

 PHP是一个很好的语言,而且有很多惊喜。而今天我看到了一个有趣的方法,在Arnold Daniels的博客。他谈到PHP中的临时变量。这个秘诀有益于"懒惰"的程序员,使程序员可以不用再去想该去给变量取个什么名字。他们可以使用这样的变量名:${0}

 

 

我比Arnold Daniels更懒,根本就不想用变量。下面有一些技巧让你的代码更少。

 

1. 使用 || (or) && (and) 操作代替 if.

 

// 标准写法
$status = fwrite($h, ''some text'');
if (!$status) {
    log(''Writing failed'');
}

//
较少的代码
${0} = fwrite($h, ''some text'');
if (!${0}) log(''Writing failed'');

//
更少的代码
fwrite($h, ''some text'') or log(''Writing failed'');

 

2. 使用三元运算符.

 

// 标准写法
if ($age < 16) {
    $message = ''Welcome!'';
} else {
  $message = ''You are too old!'';
}

//
较少的代码
$message = ''You are too old!'';
if ($age < 16) {
    $message = ''Welcome!'';
}

//
更少的代码
$message = ($age < 16) ? ''Welcome!'' : ''You are too old!'';

 

3. 使用for替换掉while.

 

// 标准写法
$i = 0;
while ($i < 100) {
  $source[] = $target[$i];
  $i += 2;
}

//
较少的代码
for ($i = 0; $i < 100; $source[] = $target[$i+=2]);

 

4. 很多地方是必须写变量。例如: PHP fluent API tips 。例如:一个函数调用得到一个数组,然后直接使用数组元素。

 

//下面这个例子会发生错误,因为函数调用,返回的数组没有先赋值给一个变量,而直接使用[''extension'']

 

$ext = pathinfo(''file.png'')[''extension''];
// result: Parse error: syntax error, unexpected ''['' in ... on line ...

 

你可以建立一个函数来解决这个问题,如下:(相当不错的方法,看着有点别扭...)

 

// returns reference to the created object
function &r($v) { return $v; }
// returns array offset
function &a(&$a, $i) { return $a[$i]; }

 

5. 多花时间去研究php自带的函数方法,PHP有很多很有趣的方法能使你的代码更短。

 

6. 当写更多的代码可以使程序更清晰的时候,不要懒惰。多花时间写注释,尽量写易读的代码。这才是真正节约时间的技巧。(多写注释和易读的代码,在以后修改调试的时候会节约时间)

 

 

 

 

 

 

PHP is a good language, but there are always surprises. And today I''ve seen an interesting approach in Arnold Daniels''s blog. He talks about temporary variables in PHP. This tip is useful to "lazy" developers who do not even think about variable names. They may prefer magic names like ${0} and 0 is good enough variable name, why not...

 

But I''m even more lazy then Arnold and sure that when there is no variable, then there is no problem. So here are a few tips that can make your code shorter and harder to read :-)

1. Use || (or) and && (and) operations instead of if.

// A lot of code
$status = fwrite($h, ''some text'');
if (!$status) {
    log(''Writing failed'');
}

// Less code
${0} = fwrite($h, ''some text'');
if (!${0}) log(''Writing failed'');

// Even less code
fwrite($h, ''some text'') or log(''Writing failed'');

2. Use ternary operator.

// A lot of code
if ($age < 16) {
    $message = ''Welcome!'';
} else {
  $message = ''You are too old!'';
}

// Less code
$message = ''You are too old!'';
if ($age < 16) {
    $message = ''Welcome!'';
}

// Even less code
$message = ($age < 16) ? ''Welcome!'' : ''You are too old!'';

3. Use for instead of while.

// A lot of code
$i = 0;
while ($i < 100) {
  $source[] = $target[$i];
  $i += 2;
}

// less code
for ($i = 0; $i < 100; $source[] = $target[$i+=2]);

4. In some cases PHP requires you to create a variable. For example, ech the PHP fluent API tips article. Another example is getting array element when array is returned by the function.

$ext = pathinfo(''file.png'')[''extension''];
// result: Parse error: syntax error, unexpected ''['' in ... on line ...

To handle all these situation you can create a set of small functions which shortcuts frequently used operations.

// returns reference to the created object
function &r($v) { return $v; }
// returns array offset
function &a(&$a, $i) { return $a[$i]; }

5. Explore the language you use. PHP is very powerful and has a lot of functions and interesting aspects of the language which can make your code more efficient and short.

6. When it is better to write more and then read the code easily, do not be lazy. Spend a few seconds and write a comment and more readable construction. This is only a tip in this list that really can save hours, not minutes.

[!--infotagslink--]

相关文章

  • php语言实现redis的客户端

    php语言实现redis的客户端与服务端有一些区别了因为前面介绍过服务端了这里我们来介绍客户端吧,希望文章对各位有帮助。 为了更好的了解redis协议,我们用php来实现...2016-11-25
  • jQuery+jRange实现滑动选取数值范围特效

    有时我们在页面上需要选择数值范围,如购物时选取价格区间,购买主机时自主选取CPU,内存大小配置等,使用直观的滑块条直接选取想要的数值大小即可,无需手动输入数值,操作简单又方便。HTML首先载入jQuery库文件以及jRange相关...2015-03-15
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • MyBatis-Plus自动填充功能失效导致的原因及解决

    这篇文章主要介绍了MyBatis-Plus自动填充功能失效导致的原因及解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
  • JS实现的简洁纵向滑动菜单(滑动门)效果

    本文实例讲述了JS实现的简洁纵向滑动菜单(滑动门)效果。分享给大家供大家参考,具体如下:这是一款纵向布局的CSS+JavaScript滑动门代码,相当简洁的手法来实现,如果对颜色不满意,你可以试着自己修改CSS代码,这个滑动门将每一...2015-10-21
  • jQuery+slidereveal实现的面板滑动侧边展出效果

    我们借助一款jQuery插件:slidereveal.js,可以使用它控制面板左右侧滑出与隐藏等效果,项目地址:https://github.com/nnattawat/slideReveal。如何使用首先在页面中加载jquery库文件和slidereveal.js插件。复制代码 代码如...2015-03-15
  • js组件SlotMachine实现图片切换效果制作抽奖系统

    这篇文章主要介绍了js组件SlotMachine实现图片切换效果制作抽奖系统的相关资料,需要的朋友可以参考下...2016-04-19
  • PHP+jQuery翻板抽奖功能实现

    翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块翻转到背面,显示抽奖中奖信息。看似简单的一个操作过程,却包含着WEB技术的很多知识面,所以本文的读者应该熟...2015-10-21
  • SQLMAP结合Meterpreter实现注入渗透返回shell

    sqlmap 是一个自动SQL 射入工具。它是可胜任执行一个广泛的数据库管理系统后端指印, 检索遥远的DBMS 数据库等,下面我们来看一个学习例子。 自己搭建一个PHP+MYSQ...2016-11-25
  • PHP实现今天是星期几的几种写法

    复制代码 代码如下: // 第一种写法 $da = date("w"); if( $da == "1" ){ echo "今天是星期一"; }else if( $da == "2" ){ echo "今天是星期二"; }else if( $da == "3" ){ echo "今天是星期三"; }else if( $da == "4"...2013-10-04
  • 详解C#切换窗口

    最近项目不多忙,于是抽点时间巩固下切换窗口问题,感兴趣的朋友跟着小编一起学习吧...2020-06-25
  • C#实现延时并自动关闭MessageBox的方法

    这篇文章主要介绍了C#实现延时并自动关闭MessageBox的方法,非常实用的功能,需要的朋友可以参考下...2020-06-25
  • 原生js实现fadein 和 fadeout淡入淡出效果

    js里面设置DOM节点透明度的函数属性:filter= "alpha(opacity=" + value+ ")"(兼容ie)和opacity=value/100(兼容FF和GG)。 先来看看设置透明度的兼容性代码: 复制代码 代码如下: function setOpacity(ele, opacity) { if (...2014-06-07
  • javascript的列表切换【实现代码】

    下面小编就为大家带来一篇javascript的列表切换【实现代码】。小编觉得挺不错的,现在分享给大家,也给大家做个参考。...2016-05-05
  • js切换光标示例代码

    复制代码 代码如下: <!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> <title...2013-10-13
  • Vue鼠标滚轮滚动切换路由效果的实现方法

    这篇文章主要介绍了Vue鼠标滚轮滚动切换路由效果的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-08-04
  • Android中用HttpClient实现Http请求通信

    本文我们需要解决的问题是如何实现Http请求来实现通信,解决Android 2.3 版本以后无法使用Http请求问题,下面请看正文。 Android开发中使用HttpClient来开发Http程序...2016-09-20
  • SpringMvc自动装箱及GET请求参数原理解析

    这篇文章主要介绍了SpringMvc自动装箱及GET请求参数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-19
  • mysql存储过程实现split示例

    复制代码 代码如下:call PROCEDURE_split('分享,代码,片段',',');select * from splittable;复制代码 代码如下:drop PROCEDURE if exists procedure_split;CREATE PROCEDURE `procedure_split`( inputstring varc...2014-05-31
  • Pytorch如何切换 cpu和gpu的使用详解

    这篇文章主要介绍了Pytorch如何切换 cpu和gpu的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-01