中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > PHP > PHP综合
[我的原创文章] PHP + BAT 制作PHP自解析批处理
作者:未知 时间:2005-09-13 19:41 出处:ChinaUnix.net 责编:chinaitpower
              摘要:[我的原创文章] PHP + BAT 制作PHP自解析批处理

[我的原创文章] PHP + BAT 制作PHP自解析批处理

关于标题: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的控制脚本,全部用批处理写的,花了点时间多看了一点而已

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有