关于标题: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 |
好文!有创意!
关键就是: :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,也觉得应用范围似乎到了只有想不到,没有作不到,但一时三刻还的确想不起来. 另外,这东西执行后有 @rem |
honestqiao 回复于:2005-04-19 14:59:39 |
哈哈,用php-cli就没有的。 你如果使用php-cgi就有的 其他的作用,就看你怎么去折腾了。 rem就是注释的作用 php-cli来解析php的时候,只是解析[code:1:d0ad0a047f]<? ?>[/code:1:d0ad0a047f]这个里面的内容 |
lbyyy 回复于:2005-04-20 17:48:41 |
用php-cli显示为:
@rem |
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的控制脚本,全部用批处理写的,花了点时间多看了一点而已 |