GB | BIG5
|
| 首頁 > 編程技術 > Perl > 正文 |
 |
| perl常問問題集--第九篇 |
| 譯者:陳彥銘 (2001-05-15 02:15:00) |
目錄
篇名
概述
我的 CGI script可在指令列下執行但無法從瀏覽器執行。您能不能幫我修修看?
如何去除文章中的 HTML標簽?
如何萃取 URLs?
如何從 user端上傳資料?如何在另一台機器上開一個檔案?
如何在 HTML中做 pop-up menu(跳出式選單)?
如何抓 HTML檔案?
如何解開或產生 Web上那些冠 %的碼?
如何【將 requests】轉向到另一頁去?
如何替網頁加上密碼?
要怎麼用 Perl來編輯 .htpasswd和 .htgroup這兩個檔案?
如何防范使用者藉由填我的 CGI表格來做壞事?
如何解讀、萃取 email標頭資料?
如何解譯 CGI表格?
如何驗証 email位址?
如何解 MIME/BASE64字串?
如何根據使用者帳戶名稱自動合成 email位址?
我的程式如何送/讀 email?
如何找出我的主機名/網域名/IP位址?
如何抓新聞討論群的文章或群組名錄?
如何抓/丟 FTP檔案?
如何用 Perl做 RPC?
作者及版權事宜
--------------------------------------------------------------------------------
篇名
perlfaq9 -網路連線(原文版 Revision: 1.16, Date: 1997/04/23 18:12:06. 中文版 $Revision: 1.13 $, $Date: 1997/07/12 20:44:25 $)
--------------------------------------------------------------------------------
概述
本篇涵蓋網路連線、 Internet ,還有幾個關於 WWW 的問題。
--------------------------------------------------------------------------------
我的 CGI script可在指令列下執行但無法從瀏覽器執行。您能不能幫我修修看?
當然,但您恐怕付不起雇我們的簽約金 :-)
說真的,如果您能夠先証明您已讀過下列這幾個 FAQs ,但遇到的問題並不單純、非言兩語即可回答的話,那麼您 post到 comp.infosystems.www.authoring.cgi上(如果是有關 HTTP 、 HTML ,或 CGI通信協定)的問題可能也會得到口氣和緩而有用的答覆。表面上看似 Perl,但骨子裡是 CGI之類的問題,如果 post到 comp.lang.perl.misc人家可能就不會這麼樂意地接受了。
幾個實用的 FAQs 分別是:
http://www.perl.com/perl/faq/idiots-guide.html
http://www3.pair.com/webthing/docs/cgi/faqs/cgifaq.shtml
http://www.perl.com/perl/faq/perl-cgi-faq.html
http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq.html
http://www.boutell.com/faq/
【譯者】上面第份文件,Perl-CGI-FAQ的中譯版可在 http://2Ti.com/cgi-bin/2T/perl/perl-cgi-faq-chi/ 處取得。最後一份(WWW FAQ)的中譯版可自 http://www.acer.net/document/cwwwfaq/ 取得。
--------------------------------------------------------------------------------
如何去除文章中的 HTML標簽?
最正確(盡管不是最快)的方法是使用 HTML::Parse模組(可由 CPAN取得,是所有寫 Web程式者必備的 libwww-perl 套件的一部分)。
許多人嘗試用簡陋的正規表示式來解決這個問題,譬如說像 s/<.*?>//g,但這個式子在很多情況下會失敗,因為要處理的字串可能會跨越斷行字元,也可能含有被 quote【跳脫】的箭頭號,或有 HTML comment出現;再加上一些疏忽,譬如,人們常忘了轉換如 <的 entities(跳脫字 元)。
以下這個「簡陋」的方法對大多數的檔案都有效:
#!/usr/bin/perl -p0777
s/<(?:[^>'"]*|(['"]).*?\1)*>//gs
如果您想要更完整的解法,請看部曲的 striphtml 程式, http://www.perl.com/CPAN/authors/Tom_Christiansen/scripts/striphtml.gz 。
--------------------------------------------------------------------------------
如何萃取 URLs?
一個快速但不完美的做法是
#!/usr/bin/perl -n00
# qxurl - tchrist@perl.com
print "$2\n" while m{
< \s*
A \s+ HREF \s* = \s* (["']) (.*?) \1
\s* >
}gsix;
這個版本並不替相對式寫法的 URLs 作調整,也不懂代換 bases【< LINK BASE=``...''>】,或如何處理 HTML comments、同時處理同一個標簽裡的 HREF和 NAME 屬性,或接受 URL形式的參數。同時,它要比一個較「完整」、利用 LWP [libwww-perl]模組套件的解法,例如 http://www.perl.com/CPAN/authors/Tom_Christiansen/scripts/xurl.gz這個程 式,快上一百倍。
--------------------------------------------------------------------------------
如何從 user端上傳資料?如何在另一台機器上開一個檔案?
如果是 HTML表格的話,您可以使用 multipart/form-data的編碼格式。 CGI.pm(可自 CPAN取得)中的 start_multipart_form()這個 method 就是為此設計的,它和 startform()這個 method 是兩回事。
--------------------------------------------------------------------------------
如何在 HTML中做 pop-up menu(跳出式選單)?
用
進入【UNIX論壇】
|
|
| 相關文章 |
perl常問問題集--第九篇 (2001-05-15 02:15:00) perl常問問題集--第八篇 (2001-05-15 01:15:01) perl常問問題集--第七篇 (2001-05-15 00:15:00) perl常問問題集--第六篇 (2001-05-14 23:15:00) perl常問問題集--第二篇 (2001-05-14 22:15:00) perl常問問題集--第三篇 (2001-05-14 21:15:00) perl常問問題集--第一篇 (2001-05-14 20:15:00) perl常問問題集--總篇 (2001-05-14 19:15:00)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |