PHP + BAT 製作PHP自解析批處理
來源:互聯網
上載者:User
關於標題: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的控制指令碼,全部用批處理寫的,花了點時間多看了一點而已