关于标题:php + bat 制作php自解析批处理
就是,一个bat文件,内部包含了dos的bat批处理代码和php的cli的代码。
因为后缀名为bat,所以在windows系统上面,我点他,他就可以自动运行
因为我做了一些对php的特殊处理,因而它又能自己使用php的cli来解析自己所包含的php指令。
有何用途:
例如你要做一个php-cli的发行包,那么你可以参照这个脚本来做你自己的安装程序。
代码原文:
filename: phpbat.bat
[code:1:e6cfde5612]
@rem<?php
@rem =='
@set phpcli=f:\usr\local\php4\php.exe
@rem phpcli表示你的cli模式的php.exe的路径
@%phpcli% %0
@goto :eof
@rem';?>
<?php
echo "\rhello world";
exec("pause");
?>
[/code:1:e6cfde5612]
一点说明,巧妙的运用了bat批处理的rem指令和php的''定义字符串的方式,使得二者混合一体,而又互补干扰。
另外一点说明:
刚才在一个qq群里,给出这个命题,居然有人说落后的技术,闲着没有事情可做,居然说就喜欢吗我这样子垃圾的人,没办法,好的东西我要共享给大家。
参考:activeperl的windows zip packge的installer.bat
| bkkkd 回复于:2005-04-09 09:04:18 |
| 有意思,但不是很明白! |
| honestqiao 回复于:2005-04-09 23:48:10 |
| 也就是,怎么样让批处理代码和php代码整合到一个文件,其后缀名为bat,那么它可以运行自身的bat代码,然后由bat代码来调用php-cli运行自身的php代码。 |
| dualface 回复于:2005-04-10 23:57:56 |
| 好文!有创意! 关键就是: @rem <?php 以及 @%phpcli% %0 @goto :eof :em03: |
| henkoo 回复于:2005-04-12 10:25:31 |
| 偶这里似乎要加上ob_flush才好一些 [code:1:b4a62b2f1b] @rem<?php @rem ==' @set phpcli=f:\php\php.exe @rem phpcli表示你的cli模式的php.exe的路径 @%phpcli% %0 @goto :eof @rem';?> <?php echo "\rhello world"; ob_flush(); exec("pause"); ?> [/code:1:b4a62b2f1b] |
| bluedoor007 回复于:2005-04-12 18:44:23 |
| 不错!看了之后非常有收获, |
| honestqiao 回复于:2005-04-14 16:16:28 |
| [quote:7726d7b1d3="henkoo"][/quote:7726d7b1d3] 呵呵,我写的只是主要的思路,代码并不是最完善的,但是可以达到一定的演示效果。 至于想要在自己的项目里面如何应用,那就是仁者见仁,智者见智 |
| gydoesit 回复于:2005-04-19 14:43:18 |
| 楼主高!!! 不过我对rem指令实在不明白,我只记得注释了,这行不起作用了.想不到里面的部分还可以用? 请楼主详细解释一下.后面的php又如何执行的也不明白. 另外,请大家给点想法,看这个可以帮助实现些什么常用的应用.我知道应该绝不会只是hello world,也觉得应用范围似乎到了只有想不到,没有作不到,但一时三刻还的确想不起来. 另外,这东西执行后有 content-type: text/html x-powered-by: php/4.3.10 @rem 这样的显示,看起来不爽,有没有办法去掉 |
| honestqiao 回复于:2005-04-19 14:59:39 |
| 哈哈,用php-cli就没有的。 你如果使用php-cgi就有的 其他的作用,就看你怎么去折腾了。 rem就是注释的作用 在他后面放上[code:1:d0ad0a047f]<?[/code:1:d0ad0a047f]是为了防止dos的批处理解析php的内容; php-cli来解析php的时候,只是解析[code:1:d0ad0a047f]<? ?>[/code:1:d0ad0a047f]这个里面的内容 |
| lbyyy 回复于:2005-04-20 17:48:41 |
| 用php-cli显示为: @rem hello world |
| honestqiao 回复于:2005-04-22 22:23:28 |
| 呵呵,这个是最开始的@rem 实际上你可以多大几个换行或者换屏就可以了的。 |
| iamcm 回复于:2005-04-24 14:15:16 |
| 不得不佩服。 看起来楼主的dos功夫也挺深哦,关键还是思维,我觉得。 |
| honestqiao 回复于:2005-04-25 09:36:24 |
| [quote:48b011a442="iamcm"]不得不佩服。 看起来楼主的dos功夫也挺深哦,关键还是思维,我觉得。[/quote:48b011a442] 呵呵,做wapm的控制脚本,全部用批处理写的,花了点时间多看了一点而已 |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器