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的控制指令碼,全部用批處理寫的,花了點時間多看了一點而已


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.