2013-02-11 91 views
2

我想知道是否可以從shell命令行執行PHP腳本。從shell或apache服務器運行PHP腳本

從shell執行的腳本是否具有從瀏覽器執行的確切功能?或者編碼有差異。

是更好地運行從外殼性能的腳本,也就是它更好地從Windows上運行,或在Unix/Linux

我問這些問題,因爲,我想開發一個PHP腳本可以從MySQL數據庫中列出的一些URL的http頭中獲取一些數據,然後將數據存儲在數據庫中。

你們可以指點我正確的方向,請問我需要ubuntu,還是有一個可以從Windows運行PHP的shell?我現在安裝的只有WAMP,它有mysql,php和apache服務器。

我很抱歉成爲新手。

感謝你的幫助

回答

1

是的,PHP can be run from command line

不,編碼沒有任何差異。

唯一的區別是它不是運行腳本的Apache,而是您當前登錄的用戶。這可能意味着某些地圖和文件夾的權限不同。

1

是的,你可以使用命令行執行PHP:

/path/to/php.exe /path/to/script.php 

的主要區別是,它不通過Apache運行,所以你不會有事情依賴於它(像一些$_SERVER數據)。

此外,它不會在命令行上超時,除非您有PHP限制設置。

查看http://php.net/manual/en/features.commandline.php瞭解更多信息。

3

我想知道是否可以從shell命令行執行PHP腳本。

這是可能或者通過執行:

$ php -f your_script.php 

或者通過插入#/usr/bin/env php到腳本的第一行,並通過使其可執行。

$ head -n 1 your_sript.php 
#/usr/bin/env php 
$ chmod +x your_script.php 
$ ./your_script.php 

注:這個例子只適用於UNIX系統。

從shell執行的腳本是否具有從瀏覽器執行的確切功能?或者編碼有差異。

您可以使用相同的語法/功能等。唯一的區別是,有在命令行參數,並在$_SERVER變量的一些其它值。

從外殼運行腳本的性能更好,也是從Windows或Unix/Linux運行它更好。

這並不重要。對於您的用例,您並不需要Web服務器和全功能的GUI。有一個命令行工具的好處是,你可以你的程序可用像grep等其他程序結合

你們可以點我朝着正確的方向請,我需要Ubuntu的,或者是有一個殼那可以從Windows運行PHP?

你不需要ubuntu,也可以從windows執行shell腳本。 PHP可執行文件位於%PATH%中。這個問題將有助於你在爲了做到這一點:https://superuser.com/questions/284342/what-are-path-and-other-environment-variables-and-how-can-i-set-or-use-them

然後只需打開cmd.exe和執行使用php -f your_script.php

3

如果一個PHP腳本可以從shell命令行執行我想知道的腳本。

是如果從瀏覽器中執行

是否從外殼腳本執行,有確切的功能?或者編碼有差異。

它不會有填充$_REQUEST和朋友,$_SERVER不會有它服務器信息。

是更好地從外殼可能運行一個腳本性能

。它避免了運行網絡服務器的開銷。它會阻止您在內存中緩存版本以加快重新執行速度。

,也是它更好地從Windows或Unix/Linux操作系統

基準它運行它。

我在問所有這些問題,因爲我想開發一個PHP腳本,它可以從MySQL數據庫中列出的某些URL的http頭中獲取一些數據,然後將數據存儲在數據庫中。

似乎沒有任何需要涉及Web服務器。

你們可以指點我正確的方向,請問我需要ubuntu,還是有一個可以從Windows運行php的shell?

標準的Windows shell可以。

所有我現在安裝的是WAMP,它有mysql,php和apache服務器。

您將需要命令行版本的PHP。我不知道WAMP是否包含它。

+0

當您從命令行執行腳本時,'$ _SERVER'中有值。 – MarcDefiant 2013-02-11 09:28:58