PHP珩褫眕?傖Shell Script
2018-09-07 15:06
PHP 崋繫涴繫綻
郔輪 PHP(Personal Hypertext Preprocessor) 侔綱眒冪傖賸涴珨謗爛懂 Linux/Unix 奻郔嫘峈湮模垀妏蚚腔厙珜揭燴逄晟妯坳腔源晞﹜湮髡夔迵 OpenSource 腔杻俶妏腕坳淏紨膝妠善換苀 CGI 朼祫岆 MicroSoft ASP(Active Server Page)腔庈部妯撓綱跪湮厙桴涽桸符蘆祥眕頗 PHP 釬峈價掛沭璃﹝
PHP 妗衄涴跺訧跡褫眕涴繫綻妯埻秪衄狟醱杅萸 :
PHP 岆 OpenSource 璃妯俇轎煤妯褫眕赻蚕汃票妯秪森柲竘賸憤嗣腔懂妏蚚妯珩秪峈森妯柲竘善賸妀珛鼠侗峈楷桯載疑腔竘迵郔槽趙璃(統蕉 ﹝
PHP 掛旯準都潠等眢雅妯珆腔硌鍔逄楊妯俋樓珨虳價掛腔勤砓絳砃揭燴夔薯妯陔忒逋眕婓郔傻奀潔囀悝頗﹝
PHP 枑鼎賸眈絞嗣腔髡夔妯婦漪賸杅悝揭燴﹜趼睫揹揭燴﹜厙釐眈壽髡夔﹜跪笱杅擂踱腔盓厥﹜荌砉揭燴髡夔﹜衄峈杅笲嗣腔楷桯氪淏峈 PHP 楷桯跪宒跪欴腔陔髡夔妯孺喃俶憤槽﹝
PHP 準都眢迵 Apache 眈賦磁妯釬峈 Apache 腔耀輸懂妏蚚妯扢隅假蚾奻眈絞潠等妯珩秪峈 Apache 醴眒冪梩擂賸 Web Server 60% 腔庈部妯PHP 赻奧傖峈 Apache 郔槽減饜﹝
祥徹妯涴棒猁蔡腔翋枙祥岆 PHP 婓厙珜扢數奻腔茼蚚妯奧岆 PHP 婓 Shell Script 奻腔茼蚚妯珨啜垀眭腔 Shell Script 湮埮憩岆 tcsh﹜bash﹜perl 麼岆 python 涴撓濬逄晟妯扂垀猁抶腔憩岆蔚 PHP 絞傖 Shell Script 懂妏蚚﹝
PHP 硒俴紫腔假蚾
珨啜 PHP 釬峈厙珜揭燴逄晟飲岆猁晤祒傖 Apache 腔耀輸妯涴爵絞祥繫酕妯珩秪森晤祒懂竭潠等妯硐猁眕 root 腔旯煦輛俴狟雄釬 :
賤羲 php-3.0.xx.tar.gz
cd php
configure
make
晤祒俇眳綴妯婓 php 醴翹狟衄珨跺褫硒俴紫妯紫靡峈 php妯蔚坳 copy 善 /usr/local/bin 狟撈褫﹝蛁砩妯彆紫偶怮湮妯褫眕妏蚚 strip 硌鍔蔚 php 腔源宒蔚祥斛猁腔陓洘壺妯涴欴紫偶憩頗苤腕嗣賸﹝
菴珨跺最唗
羲宎蚴迡扂蠅腔菴珨跺 PHP Shell Script 最唗妯涴跺瞰赽荂堤 Hello world ! :
#!/usr/local/bin/php -q
<?
echo Hello, world !;
?>
蛁砩善 PHP 埻掛岆茼蚚婓厙珜茼蚚腔妯秪森坳囀隅頗冞堤 HTML 腔 HEADER妯筍岆婓森扂蠅岆猁蔚 PHP 蚚釬 Shell Script妯-q 憩岆桶尨祥猁冞堤 HEADER 腔砩佷妯斕褫眕彸彸艘祥樓奻 -q 腔珆尨賦彆﹝
婓涴跺瞰赽笢妯/usr/local/bin/php 岆桶尨猁硒俴 /usr/local/bin/ 狟腔 PHP妯秪峈扂蠅試符蔚坳蚾婓蜆揭﹝echo 硌鍔蔚 Hello, world ! 荂堤妯笢腔 趼睫岆遙俴趼睫﹝
蛁砩善婓蔚涴跺最唗湔傖紫偶綴妯剕蔚 chmod 傖峈褫硒俴扽俶(chmod +x 恅璃靡)妯綴符夔硒俴鉊﹝
輛論妏蚚 I
衄奀緊扂蠅剒猁婓最唗硒俴奀妯冞輛珨虳統杅妯掀佽 ls 涴跺硌鍔妯綴醱褫眕樓奻 -l 統杅妯PHP Shell Script 珨欴珩衄盓厥涴欴腔蚚楊妯衄謗跺杻忷腔曹講 : $argc 暮翹覂綴醱冞統杅腔跺杅妯$argv[] 杅郪統杅湔覂腔寀岆統杅腔囀﹝掀佽扂珋婓猁扢數珨跺呾謗跺杅趼軞睿腔最唗 :
#!/usr/local/bin/php -q
<?
$sum=0;
$sum=$sum+$argv[1]+$argv[2];
echo $sum;
?>
樑扢蔚森最唗韜靡峈 sum.php3妯寀硒俴 sum.php3 1 2 偌狟 enter 寀頗荂堤 3﹝
彆猁呾堤祥杻隅跺杅腔統杅睿妯饒繫憩腕猁蚚善 $argc 涴跺杻忷曹講賸 :
#!/usr/local/bin/php -q
<?
$sum=0;
for ($t=1;$t<=$argc;$t++)
$sum=$sum+$argv[$t];
echo $sum;
?>
樑扢蔚森最唗韜靡峈 bigsum.php3妯寀硒俴 bigsum.php3 1 2 3 4 5 偌狟 enter 寀頗荂堤 15妯硒俴 bigsum.php3 1 2 3 4 5 6 偌狟 enter 寀頗荂堤 21﹝
衄奀緊扂蠅剒猁婓最唗硒俴笢怀訧蹋妯筍岆 PHP 埻掛憩岆蚚衾厙珜扢數妯奧厙珜奻腔訧蹋怀赻飲岆蚚 FORM 腔源宒懂怀妯垀眕涴蔚 PHP 釬峈 Shell Script 奀恀枙憩懂賸妯疑婓 PHP 衄枑鼎賸羲恅璃髡夔妯奧婓 Linux/Uinx 眳狟妯怀(input)涴璃岈埻掛憩褫眕蚚羲紫腔源宒懂俇傖妯扂蠅猁羲腔岆 /dev/stdin 涴跺扢掘紫(stdin 岆桶尨 standard input 腔砩佷)妯最唗狟 :
#!/usr/local/bin/php -q
<?
$fp=fopen(/dev/stdin,r);
$inputstr=fgets($fp,100);
fclose($fp);
echo \n----------------------\n;
echo $inputstr;
?>
笢腔 fgets($fp,100) 岆硌植 $fp 涴跺紫偶(珩憩岆 /dev/stdin)笢黍堤 100 跺 byte 腔訧蹋妯最唗硒俴善涴俴晞頗礿狟懂脹渾扂蠅腔怀妯絞扂蠅怀俇偌狟 enter 眳綴妯最唗憩頗蔚試符扂蠅怀腔訧蹋跤荂堤懂賸﹝
輛論妏蚚 II
呥眒冪褫眕揭燴怀妯筍岆涴欴腔髡夔珆遜岆怮潠等妯拸楊茼葆載湮腔茼蚚妯掀佽扂剒猁珨跺髡夔岆蔚珨揹訧蹋霜(data stream)笢腔 HTML 跤壺妯涴奀晞剒猁俇淕華揭燴怀堤怀蛌砃腔夔薯妯扂蠅褫眕珂扢數最唗狟 :
#!/usr/local/bin/php -q
<?
$fp=fopen(/dev/stdin,r);
while(!feof($fp)) {
$c=fgetc($fp);
$inputstr=$inputstr.$c;
};
fclose($fp);
echo $inputstr;
?>
樑扢蔚森最唗韜靡峈 filt.php3妯彆斕眻諉硒俴涴跺最唗妯坳頗珨眻脹渾斕怀妯眻善斕偌狟 Ctrl+D 綴符頗蔚斕腔怀訧蹋跤荂堤妯扂蠅褫眕涴繫硒俴坳 :
more filt.php3 filt.php3
涴欴腔酕楊岆蔚 filt.php3 涴跺最唗蚚 more 跤凅堤甜蛌砃跤 filt.php3 涴跺最唗妯filt.php3 頗祥剿諉忳訧蹋(岈妗奻憩岆 filt.php3 最唗測鎢掛旯)妯郔綴蔚荂堤﹝
扂蠅褫眕婓笢樓奻徹薦 HTML 腔髡夔 :
#!/usr/local/bin/php -q
<?
$fp=fopen(/dev/stdin,r);
while(!feof($fp)) {
$c=fgetc($fp);
$inputstr=$inputstr.$c;
};
fclose($fp);
$inputstr=ereg_replace(<([^<>]*)>,,$inputstr);
echo $inputstr;
?>
樑扢蔚森最唗韜靡峈 filt2.php3妯森珨懂晞俇傖賸徹薦髡夔妯祥陓鏽跺 HTML 紫懂彸彸艘 :
more xxx.html filt2.php3
斕晞頗艘善刉壺賸 HTML TAG 腔恅璃賸﹝
賦蹦
PHP 鏽懂絞 Shell Script 岈妗奻眈絞華疑蚚妯埻秪岆 PHP 掛旯竭疑悝妯奧坳衱盓厥賸跪笱杅擂踱妯絞斕眒冪冪都鏽 PHP 懂扢數斕腔厙桴眳綴妯橈勤祥怮炰辣婬妏蚚坳腔 Shell Script 逄晟懂揭燴坳斛剕準厙珜腔窒爺妯涴奀緊鏽 PHP 懂絞酕 Shell Script 腔疑揭憩頗珆珋堤懂賸妯斕褫眕眕珨嫗腔源宒懂楷桯淕跺炵苀妯奧祥斛珨狟猁蚚 PHP珨狟衱蚚 Perl/Python 麼岆 C﹝
弊囀腔 PHP 瑞眒冪眈絞倓呏妯掛桴 LinuxFab 晞岆俇眕 PHP 減饜 MySQL 楷桯懂腔妯岈妗奻 PHP 腔鏝蚚遜衄竭嗣妯衄儂頗綴婬賡庄妯彆黍氪蠅剒猁 PHP 腔眈壽陓洘妯辣茩善掛桴奻腔 PHP 蹦抭 統迵載嗣枒蹦﹝ ㄗ堤揭ㄩViphotㄘ