用PHP指令碼在Linux系統上讀取輸入和對檔案進行操作

來源:互聯網
上載者:User

Perl作為Linux系統命令列指令碼的首選解釋語言的日子一去不複返了。今天,我們有了更多的選擇,包括Python、Ruby和PHP。如果你已經為網站編寫PHP代碼,並熟諳這種語言,那麼你會發現,在命令列使用PHP的速度之快,效果之好令人驚奇。

在指令碼中,任何指令碼語言的一個最大功用是對檔案進行操作並擷取使用者輸入。PHP處理這些絲毫不比其它任何指令碼語言遜色。

例如,利用PHP在指令碼執行期間處理讀取使用者提供輸入,使用:

#!/usr/bin/php

<?php
function read_input()
{
$fp = fopen("/dev/stdin", "r");
$input = trim(fgets($fp, 255));
fclose($fp);
return $input;
}
printf("Please supply your name: ");
$name = read_input();
printf(" Hello, $name. ");
?>
</code>

上面定義的read_input()函數將從STDIN提取輸入,儲存於$input 變數中,整理所有引導的和尾隨的空白空間,然後返回。

同樣的原理還可以應用於讀取和操作標準檔案;記住,對於Linux,STDIN只是另一個檔案而已(相應地,上述例子中的opening /dev/stdin 也是這樣)。

#!/usr/bin/php

<?php
if (file_exists($argv[1]))
{
$file = $argv[1];
} else {
printf("ERROR: File '$file' does not exist! ");
exit 1;
}
$data = file($file);
$c = 1;
foreach ($data as $line)
{
printf(sprintf("[%s]: %s", $c, $line));
$c++;
}

在上述例子中,PHP指令碼將會讀取傳遞到命令列檔案中的每一行,並緊隨當前行數將其輸出。如果檔案不存在,指令碼會列印一個出錯提示,並將傳回碼1並退出(1表示出錯;在正常運行中,指令碼會以傳回碼0退出)。file() 函數在這裡使用,它讀取檔案的每行,列成數組(在這個例子中,數組為$data),然後用於foreach()語句中,在數組中迴圈,一次是檔案中的一行。

PHP已經不再嚴格拘泥於基於Web的編程。我們可以將它輕鬆應用於編寫命令列指令碼,既靈活又快速。

同樣地,幾乎所有你能用Web指令碼進行操作的,例如,資料庫操作,都可以輕鬆地應用PHP的命令列指令碼完成。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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