| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 编程开发 > Perl教程 > 文章正文 用户登录
各种漂亮的鼠标UR
去除头部banner
修改新浪博客上面
Google AdSenser 
Skype为推广员提供
Dotworlds免费提供
Better fonts免费
TinyURL免费缩短网
RealTracker提供免
谁杀死了站长(We

perl常问问题集--第九篇           

perl常问问题集--第九篇

作者:佚名 来源:不详 更新:2006-8-25 21:05:35 错误报告 我要投稿
目录 
篇名 
概述 
我的 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(跳出式选单)?
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。