人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

PHP做Shell語言

PHP做Shell語言

更新時間:2022-08-25 文章作者:未知 信息來源:網絡 閱讀次數:

聯想軟件超星空工作室 馬洪志

PHP(Personal Hypertext Preprocessor) 近一兩年來似乎已經成為Linux/Unix上最廣為使用的網頁處理語言,方便、功能強大與源代碼開放(OpenSource)的特性使得它正逐漸占領傳統的CGI,甚至是 MicroSoft ASP(Active Server Page)的市場,很多的web站點用PHP做動態網頁處理。

究其原因,可以總結如下:

PHP是OpenSource的軟件,基于GPL協議,源代碼開放,免費使用,自由發放,這樣吸引了大量的人使用,同時也得到了商業公司的支持,特別是在PHP4中,zend為PHP提供了引擎和優化部分,你可以訪問http://www.php.net或http://www.zend.com,可以得到更多的信息。

PHP本身的語法非常的簡單,和C、Perl語言有很大的相似。當我第一次接觸PHP時,感覺它簡直是Perl的克隆。PHP本身非常簡單易懂,同時提供面向對象的處理能力,讓新手足以在最短時間內學會。

PHP 提供了非常豐富的功能,包含了數學處理、字串處理、網絡相關功能、各種數據庫的支持、圖像處理功能。有很多人為PHP發展提供各式各樣的新功能,它的擴性極佳。目前,PHP對Flash提供了較好的支持。

PHP很容易與Apache相結合,可以作為Apache的模組來使用,同時,在Apache中設定安裝相當簡單,也因為Apache目前已經占據了Web Server 全球 60% 的市場,PHP 自然而然成為 Apache 最佳搭配。同時為了提高web服務器的速度,可以把PHP直接編譯進Apache,提高web服務的訪問、處理速度。

PHP的另外的一個功能是:它實際上是可以作為shell script來應用的。PHP作為shell script比其他的shell語言有很大的優勢。尤其PHP的數據庫的服務功能非常的強大,用戶可以方便的訪問數據庫系統。

編譯PHP讓它用來做解釋器,本文的操作環境是HappyLinux家用版V1.0,以root身份執行下面的步驟:


獲得PHP的源代碼  

PHP的源代碼在http://www.php.net 的網站上可以得到,同時國內的很多的網站上提供改網站的鏡像。目前,最新的版本是PHP 4.0.2。


解開PHP源碼包  

tar zxvf php-4.0.2.tar.gz


編譯PHP  

cd php-4.0.2

configure --with-ftp --with-pgsql

make

注意configure的參數看PHP的幫助文件,以便你能更好的配置PHP。


當編譯完成后,在php-4.0.2目錄下會生成一個php的文件,將這個文件拷貝到/usr/sbin/  

cp ./php /usr/sbin


測試編譯的結果  

輸入下面的結果到文件test.php中:

#!/usr/sbin/php

<?php

echo “Hello World!\n”

?>

保存結果到test.php中并更改文件的屬性:

chmod 777 ./test.php

執行文件test.php

./test.php

這時你能夠看見結果:

X-Powered-By: PHP/4.0.2

Content-type: text/html

Hello World!

這個結果你可能有些失望,它并不是我們要的全部的結果。因為,PHP主要是做為網頁的應用,上面的頭兩行是輸出的HPPT的頭,怎樣讓PHP去掉這兩行呢?你僅僅需要在加入參數-q就可以去掉HPPT頭:

#!/usr/sbin/php -q

<?php

echo “Hello World!\n”

?>

再看一下輸出的結果:

Hello World!


OK!搞定。下面用PHP做腳本列舉一些應用


用PHP連接數據庫  

PHP提供大量的數據庫的函數,幾乎所有的數據庫PHP提供一套數據庫的函數,所以用PHP寫腳本,訪問數據庫是一個很好的主意。下面的例子是用PHP訪問postgresql數據庫的一個例子:

#!/usr/sbin/php -q

<?php

string=$con=pg_Connect("dbname=test port=5432 host=127.0.0.1 user=postgres\ password=postgres");

echo $con."\n";

pg_exec($con,"insert into test1 values ('ok',1,1)");

pg_close($con);

?>

執行這個腳本,PHP訪問數據庫test,同時,會向test1表中插入一個記錄。有關PHP訪問數據庫的內容請看相關的數據庫函數和數據庫的文檔手冊。


用PHP做FTP自動上載和下載腳本  

在PHP3就提供PHP的FTP的函數,用這些函數能夠實現文件的自動上載和下載的功能。想要利用PHP提供的FTP函數,必須要在編譯PHP時的configure指定參--with-ftp。下面是FTP的例子:

#!/usr/sbin/php -q

<?php

// set up basic connection

$conn_id = ftp_connect("$your_ftp_server");


// login with username and password

$login_result = ftp_login($conn_id, "$ftp_your_name", "$ftp_your_password");


// check connection

if ((!$conn_id) || (!$login_result)) {

echo "Ftp connection has failed!";

echo "Attempted to connect to $your_ftp_server ";

die;

} else {

echo "Connected to $ftp_server, for your";

}


// upload the file

$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);


// check upload status

if (!$upload) {

echo "Ftp upload has failed!";

} else {

echo "Uploaded $source_file to $your_ftp_server as $destination_file";

}


// close the FTP stream

ftp_quit($conn_id);

?>

顯然利用PHP可以方便的進行網絡的文件傳輸,沒有必要寫socket程序。


用PHP處理命令行參數  

PHP和Perl的相似之處還在于它們們處理的參數的方法是一致的,它們提供變量數組和變量計數器:$ argv [],$ argc。下面的例子是一個打印命令行字串的例子和命令行求和。

test.php


#!/usr/sbin/php –q  

<?php

echo $argv[1]; //注意$ argv []的第一個變量從1開始

?>

在命令行下執行:./test.php LegendSoftware

將打印LegendSoftware


test1.php


#!/usr/sbin/php –q

<?php

$sum=0;

for ($i=1;$i<=$argc;$i++)

$sum=$sum+$argv[$i];

echo $sum;

?>

執行 test1.php 1 2 3 4 5 回車,則會打印出 15。


在Console下進行交互  

許多的C程序員知道在Console下進行交互用scanf函數,PHP是為web而設計的語言,用戶輸入交互通過form中的變量。那么在Console下怎么進行交互呢?答案很簡單,用fopen函數打開系統的標準輸入設備進行讀取。下面的程序實現了這個從標準輸入設備上讀取字串的功能:

#!/usr/sbin/php -q

<?

$fp=fopen("/dev/stdin","r");

echo “Please input a string:”

$inputstr=fgets($fp,100);

fclose($fp);

echo "This string is ";

echo $inputstr.”\n”;

?>  


其中的 fgets($fp,100) 是指從$fp句柄(也就是 "/dev/stdin")中讀取出最多100個字節,執行這個程序會等待我們的輸入,當我們輸入完按下 enter 之后,程序會將我們的輸入打印出來。

小結

通過上面的介紹,和本人的實踐經驗,PHP的功能非常的強大,不但對web的處理能力非常的強大,同時對腳本的處理能力也是非常的方便。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 千阳县| 永清县| 株洲县| 河东区| 武宁县| 白河县| 大兴区| 辉南县| 晋江市| 昆山市| 天镇县| 从化市| 大方县| 盘山县| 阿尔山市| 卢氏县| 平谷区| 定兴县| 东光县| 丽水市| 固镇县| 漳平市| 隆林| 衡山县| 沙河市| 兴化市| 洛隆县| 中方县| 英超| 阜阳市| 昆山市| 博白县| 宝山区| 潢川县| 武宣县| 景泰县| 墨脱县| 兴国县| 武汉市| 大同县| 北川|