Shell Script方式的PHP(轉(zhuǎn)) 這種方式頗有點像PERL的CGI方式。。:)
Jun 21, 2016 am 09:12 AMcgi|perl
Shell Script方式的PHP
PHP 怎么這么紅??
最近 PHP(Personal Hypertext Preprocessor) 似乎已經(jīng)成了這一兩年來 Linux/Unix 上最廣為大家所使用的網(wǎng)頁處理語言﹐它的方便、強大功能與 OpenSource 的特性使得它正逐漸侵蝕到傳統(tǒng) CGI 甚至是 MicroSoft ASP(Active Server Page)的市場﹐幾乎各大網(wǎng)站征招人才莫不以會 PHP 作為基本條件。??
PHP 確實有這個資格可以這么紅﹐原因有下面數(shù)點 :??
PHP 是 OpenSource 軟件﹐完全免費﹐可以自由散布﹐因此吸引了極多的人來使用﹐也因為如此﹐吸引到了商業(yè)公司為其發(fā)展更好的引擎與最佳化軟件(請參考 http://www.zend.com/)。??
PHP 本身非常簡單易懂﹐淺顯的指令語法﹐外加一些基本的對象導(dǎo)向處理能力﹐讓新手足以在最短時間內(nèi)學(xué)會。??
PHP 提供了相當(dāng)多的功能﹐包含了數(shù)學(xué)處理、字符串處理、網(wǎng)絡(luò)相關(guān)功能、各種數(shù)據(jù)庫的支持、影像處理功能、有為數(shù)眾多的發(fā)展者正為 PHP 發(fā)展各式各樣的新功能﹐擴充性極佳。??
PHP 非常容易與 Apache 相結(jié)合﹐作為 Apache 的模塊來使用﹐設(shè)定安裝上相當(dāng)簡單﹐也因為 Apache 目前已經(jīng)占據(jù)了 Web Server 全球 60% 的市場﹐PHP 自然而然成為 Apache 最佳搭配。??
不過﹐這次要講的主題不是 PHP 在網(wǎng)頁設(shè)計上的應(yīng)用﹐而是 PHP 在 Shell Script 上的應(yīng)用﹐一般所知的 Shell Script 大約就是 tcsh、bash、perl 或是 python 這幾類語言﹐我所要談的就是將 PHP 當(dāng)成 Shell Script 來使用。??
PHP 執(zhí)行檔的安裝??
一般 PHP 作為網(wǎng)頁處理語言都是要編譯成 Apache 的模塊﹐這里當(dāng)然不么做﹐也因此編譯起來很簡單﹐只要以 root 的身分進行如下動作 :??
解開 php-3.0.xx.tar.gz??
cd php??
configure??
make??
編譯完之后﹐在 php 目錄下有一個可執(zhí)行檔﹐檔名為 php﹐將它 copy 到 /usr/local/bin 下即可。注意﹐如果檔案太大﹐可以使用 strip 指令將 php 的方式將不必要的信息去除﹐這樣檔案就會小得多了。??
第一個程序??
開始撰寫我們的第一個 PHP Shell Script 程序﹐這個例子印出 "Hello world !" :??
#!/usr/local/bin/php -q??
??
echo "Hello, world !";??
?>??
注意到 PHP 原本是應(yīng)用在網(wǎng)頁應(yīng)用的﹐因此它內(nèi)定會送出 HTML 的 HEADER﹐但是在此我們是要將 PHP 用作 Shell Script﹐"-q" 就是表示不要送出 HEADER 的意思﹐你可以試試看不加上 -q 的顯示結(jié)果。??
在這個例子中﹐/usr/local/bin/php 是表示要執(zhí)行 /usr/local/bin/ 下的 PHP﹐因為我們剛才將它裝在該處。echo 指令將 "Hello, world !" 印出﹐其中的 "" 字符是換行字符。??
注意到在將這個程序存成檔案后﹐須將其 chmod 成為可執(zhí)行屬性(chmod +x 文件名)﹐然后才能執(zhí)行喔。??
進階使用 I??
有時候我們需要在程序執(zhí)行時﹐送進一些參數(shù)﹐比如說 ls 這個指令﹐后面可以加上 -l 參數(shù)﹐PHP Shell Script 一樣也有支持這樣的用法﹐有兩個特殊的變量 : $argc 記錄著后面送入?yún)?shù)的個數(shù)﹐$argv[] 數(shù)組參數(shù)存著的則是參數(shù)的內(nèi)容。比如說我現(xiàn)在要設(shè)計一個算兩個數(shù)字總和的程序 :??
#!/usr/local/bin/php -q??
??
$sum=0;??
$sum=$sum+$argv[1]+$argv[2];??
echo $sum;??
?>??
假設(shè)將此程序命名為 sum.php3﹐則執(zhí)行 sum.php3 1 2 按下 enter 則會印出 3。??
如果要算出不特定個數(shù)的參數(shù)和﹐那么就得要用到 $argc 這個特殊變量了 :??
#!/usr/local/bin/php -q??
??
$sum=0;??
for ($t=1;$t$sum=$sum+$argv[$t];??
echo $sum;??
?>??
假設(shè)將此程序命名為 bigsum.php3﹐則執(zhí)行 bigsum.php3 1 2 3 4 5 按下 enter 則會印出 15﹐執(zhí)行 bigsum.php3 1 2 3 4 5 6 按下 enter 則會印出 21。??
有時候我們需要在程序執(zhí)行中輸入資料﹐但是 PHP 原本就是用于網(wǎng)頁設(shè)計﹐而網(wǎng)頁上的資料輸入自然都是用 FORM 的方式來輸入﹐所以這將 PHP 作為 Shell Script 時問題就來了﹐好在 PHP 有提供了開文件功能﹐而在 Linux/Uinx 之下﹐輸入(input)這件事原本就可以用開檔的方式來完成﹐我們要開啟的是 /dev/stdin 這個設(shè)備檔(stdin 是表示 standard input 的意思)﹐程序如下 :??
#!/usr/local/bin/php -q??
??
$fp=fopen("/dev/stdin","r");??
$inputstr=fgets($fp,100);??
fclose($fp);??
echo " ---------------------- ";??
echo $inputstr;??
?>??
其中的 fgets($fp,100) 是指從 $fp 這個檔案(也就是 "/dev/stdin")中讀取出 100 個 byte 的資料﹐程序執(zhí)行到這行便會停下來等待我們的輸入﹐當(dāng)我們輸入完按下 enter 之后﹐程序就會將剛才我們輸入的資料給印出來了。??
進階使用 II??
雖然已經(jīng)可以處理輸入﹐但是這樣的功能顯然還是太簡單﹐無法應(yīng)付更大的應(yīng)用﹐比如說我需要一個功能是將一串資料流(data stream)中的 HTML 給去除﹐這時便需要完整地處理輸出輸入轉(zhuǎn)向的能力﹐我們可以先設(shè)計程序如下 :??
#!/usr/local/bin/php -q??
??
$fp=fopen("/dev/stdin","r");??
while(!feof($fp)) {??
$c=fgetc($fp);??
$inputstr=$inputstr.$c;??
};??
fclose($fp);??
echo $inputstr;??
?>??
假設(shè)將此程序命名為 filt.php3﹐如果你直接執(zhí)行這個程序﹐它會一直等待你輸入﹐直到你按下 Ctrl+D 后才會將你的輸入資料給印出﹐我們可以這么執(zhí)行它 :??
more filt.php3 | filt.php3??
這樣的做法是將 filt.php3 這個程序用 more 給秀出并轉(zhuǎn)向給 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;??
?>??
假設(shè)將此程序命名為 filt2.php3﹐如此一來便完成了過濾功能﹐不信請拿個 HTML 檔來試試看 :??
more xxx.html | filt2.php3??
你便會看到刪除了 HTML TAG 的文件了。??
結(jié)論??
PHP 拿來當(dāng) Shell Script 事實上相當(dāng)?shù)睾糜茅o原因是 PHP 本身很好學(xué)﹐而且它又支持了各種數(shù)據(jù)庫﹐當(dāng)你已經(jīng)經(jīng)常拿 PHP 來設(shè)計你的網(wǎng)站之后﹐絕對不太喜歡再使用其它的 Shell Script 語言來處理其它必須非網(wǎng)頁的部份﹐這時候拿 PHP 來當(dāng)做 Shell Script 的好處就會顯現(xiàn)出來了﹐你可以以一貫的方式來發(fā)展整個系統(tǒng)﹐而不必一下要用 PHP一下又用 Perl/Python 或是 C。

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Input suara pengguna ditangkap dan dihantar ke backend PHP melalui API Mediarecorder JavaScript front-end; 2. PHP menjimatkan audio sebagai fail sementara dan memanggil STTAPI (seperti Pengiktirafan Suara Google atau Baidu) untuk mengubahnya menjadi teks; 3. PHP menghantar teks kepada perkhidmatan AI (seperti Openaigpt) untuk mendapatkan jawapan pintar; 4. PHP kemudian memanggil TTSAPI (seperti sintesis Baidu atau Google Voice) untuk menukar balasan ke fail suara; 5. PHP mengalir fail suara kembali ke bahagian depan untuk bermain, menyelesaikan interaksi. Seluruh proses dikuasai oleh PHP untuk memastikan hubungan lancar antara semua pautan.

Kaedah teras untuk membina fungsi perkongsian sosial dalam PHP adalah untuk menghasilkan pautan perkongsian secara dinamik yang memenuhi keperluan setiap platform. 1. Mula -mula dapatkan halaman semasa atau URL dan maklumat artikel yang ditentukan; 2. Gunakan urlencode untuk menyandikan parameter; 3. Sambutan dan menjana pautan perkongsian mengikut protokol setiap platform; 4. Pautan paparan di hujung depan untuk pengguna mengklik dan berkongsi; 5. Dinamik menghasilkan tag OG pada halaman untuk mengoptimumkan paparan kandungan perkongsian; 6. Pastikan untuk melepaskan input pengguna untuk mencegah serangan XSS. Kaedah ini tidak memerlukan pengesahan yang kompleks, mempunyai kos penyelenggaraan yang rendah, dan sesuai untuk kebanyakan keperluan perkongsian kandungan.

Untuk merealisasikan pembetulan ralat teks dan pengoptimuman sintaks dengan AI, anda perlu mengikuti langkah -langkah berikut: 1. Pilih model AI atau API yang sesuai, seperti Baidu, Tencent API atau perpustakaan NLP sumber terbuka; 2. Panggil API melalui curl atau Guzzle PHP dan memproses hasil pulangan; 3. Maklumat pembetulan ralat paparan dalam aplikasi dan membenarkan pengguna memilih sama ada untuk mengadopsinya; 4. Gunakan php-l dan php_codesniffer untuk pengesanan sintaks dan pengoptimuman kod; 5. Secara berterusan mengumpul maklum balas dan mengemas kini model atau peraturan untuk meningkatkan kesannya. Apabila memilih AIAPI, fokus pada menilai ketepatan, kelajuan tindak balas, harga dan sokongan untuk PHP. Pengoptimuman kod harus mengikuti spesifikasi PSR, gunakan cache yang munasabah, elakkan pertanyaan bulat, mengkaji semula kod secara berkala, dan gunakan x

1. Memaksimumkan nilai komersil sistem komen memerlukan menggabungkan pengiklanan pengiklanan asli, perkhidmatan nilai tambah pengguna (seperti memuat naik gambar, komen top-up), mempengaruhi mekanisme insentif berdasarkan kualiti komen, dan pematuhan data pengewangan data tanpa nama; 2. Strategi audit harus mengadopsi gabungan penapisan kata kunci dinamik pra-audit dan mekanisme pelaporan pengguna, ditambah dengan penarafan kualiti komen untuk mencapai pendedahan hierarki kandungan; 3. Anti-brushing memerlukan pembinaan pertahanan berbilang lapisan: Recaptchav3 Pengesahan tanpa sensor, Honeypot Honeypot Field Robot, IP dan Had Frekuensi Timestamp menghalang penyiraman, dan pengiktirafan corak kandungan menandakan komen yang mencurigakan, dan terus berurusan dengan serangan.

PHP tidak secara langsung melaksanakan pemprosesan imej AI, tetapi mengintegrasikan melalui API, kerana ia adalah baik pada pembangunan web dan bukannya tugas-tugas intensif pengkomputeran. Integrasi API boleh mencapai pembahagian profesional buruh, mengurangkan kos, dan meningkatkan kecekapan; 2. Mengintegrasikan teknologi utama termasuk menggunakan Guzzle atau Curl untuk menghantar permintaan HTTP, pengekodan data JSON dan penyahkodan, pengesahan keselamatan utama API, pemprosesan giliran yang memakan masa yang memakan masa, pengendalian ralat yang teguh dan mekanisme semula, penyimpanan imej dan paparan; 3. Cabaran umum termasuk kos API daripada kawalan, hasil generasi yang tidak terkawal, pengalaman pengguna yang lemah, risiko keselamatan dan pengurusan data yang sukar. Strategi tindak balas menetapkan kuota dan cache pengguna, menyediakan panduan propt dan pemilihan multi-gambar, pemberitahuan asynchronous dan kemajuan kemajuan, penyimpanan pembolehubah persekitaran utama dan audit kandungan, dan penyimpanan awan.

PHP memastikan pemotongan inventori atomik melalui urus niaga pangkalan data dan kunci baris forupdate untuk mengelakkan overselling serentak yang tinggi; 2. Konsistensi inventori pelbagai platform bergantung kepada pengurusan berpusat dan penyegerakan yang didorong oleh peristiwa, menggabungkan pemberitahuan API/webhook dan beratur mesej untuk memastikan penghantaran data yang boleh dipercayai; 3. Mekanisme penggera harus menetapkan inventori rendah, sifar/inventori negatif, jualan yang tidak dapat dilepaskan, kitaran penambahan dan strategi turun naik yang tidak normal dalam senario yang berbeza, dan pilih DingTalk, SMS atau orang yang bertanggungjawab e -mel mengikut urgensi, dan maklumat penggera mesti lengkap dan jelas untuk mencapai penyesuaian perniagaan dan tindak balas yang cepat.

Phpisstillrelevantinmodernenterpriseenvironments.1.modernphp (7.xand8.x) Menawarkan Perpaduan Perlengkapan, ketegangan, jitcompilation, danmodernsyntax, makeitsuatableforlarge-scaleapplications.2.phpintegratefective

Pilih Perkhidmatan Pengiktirafan Suara AI yang sesuai dan mengintegrasikan PHPSDK; 2. Gunakan PHP untuk memanggil FFMPEG untuk menukar rakaman ke dalam format API yang diperlukan (seperti WAV); 3. Muat naik fail ke penyimpanan awan dan hubungi pengiktirafan tak segerak API; 4. Menganalisis hasil JSON dan menyusun teks menggunakan teknologi NLP; 5. Menjana dokumen Word atau Markdown untuk melengkapkan automasi rekod mesyuarat. Seluruh proses perlu memastikan penyulitan data, kawalan akses dan pematuhan untuk memastikan privasi dan keselamatan.
