麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Ruby > 正文

Ruby中CGI編程詳細(xì)教程 新手入門必看

2020-02-24 15:40:47
字體:
供稿:網(wǎng)友

  下面小編給大家分享一篇ruby.html" target="_blank">Ruby中CGI編程的詳細(xì)教程,感興趣的朋友跟小編一起來了解一下吧!

  編寫CGI腳本:

  最基本的Ruby CGI腳本看起來像這樣:

  #!/usr/bin/ruby

  puts "HTTP/1.0 200 OK"

  puts "Content-type: text/html/n/n"

  puts "

This is a test

"

  如果調(diào)用這個(gè)腳本 test.cgi 上傳到基于Unix/Linux的Web托管服務(wù)提供商并具有合適的權(quán)限,那么可以將它作為一個(gè)CGI腳本使用。

  例如,如果有一個(gè)Linux的Web托管服務(wù)提供商托管的網(wǎng)站,如:http://www.yiibai.com/test.cgi 的主目錄,并給它執(zhí)行權(quán)限,那么訪問 http://www.yiibai.com/test.cgi 應(yīng)該返回一個(gè)HTML頁面顯示:This is a test.

  這里時(shí)當(dāng) test.cgi 從Web瀏覽器請求,Web服務(wù)器看執(zhí)行使用Ruby解釋器它。 Ruby腳本返回一個(gè)基本的HTTP頭,然后返回一個(gè)基本的HTML文檔。

  使用 cgi.rb:

  Ruby有一個(gè)特殊的稱為CGI庫,使更復(fù)雜的交互相比前面的CGI腳本。

  讓我們創(chuàng)建一個(gè)基本的CGI使用CGI腳本:

  #!/usr/bin/ruby

  require 'cgi'

  cgi = CGI.new

  puts cgi.header

  puts "

This is a test"

  在這里,創(chuàng)建了一個(gè)CGI對象,并用它來打印標(biāo)題行。

  表單處理:

  使用CGI類使可以訪問HTML查詢參數(shù)有兩種方法。假設(shè)我們給出 /cgi-bin/test.cgi?FirstName=Zara&LastName=Ali.

  可以訪問參數(shù)FirstName和LastName使用CGI#[]如下:

  #!/usr/bin/ruby

  require 'cgi'

  cgi = CGI.new

  cgi['FirstName'] # => ["Zara"]

  cgi['LastName'] # => ["Ali"]

  還有另一種方法來訪問這些表單變量。此代碼會(huì)給出所有的項(xiàng)和值的哈希值:

  #!/usr/bin/ruby

  require 'cgi'

  cgi = CGI.new

  h = cgi.params # => {"FirstName"=>["Zara"],"LastName"=>["Ali"]}

  h['FirstName'] # => ["Zara"]

  h['LastName'] # => ["Ali"]

  以下是代碼來檢索所有的鍵:

  #!/usr/bin/ruby

  require 'cgi'

  cgi = CGI.new

  cgi.keys # => ["FirstName", "LastName"]

  如果表單包含多個(gè)具有相同名稱的字段,對應(yīng)的值將被返回到腳本中為一個(gè)數(shù)組。[]存取器返回這些的只是第一個(gè)。

  在這個(gè)例子中,假設(shè)名為“name”的表單有三個(gè)字段,我們輸入了三個(gè)名字 "Zara", "Huma" and "Nuha":

  #!/usr/bin/ruby

  require 'cgi'

  cgi = CGI.new

  cgi['name'] # => "Zara"

  cgi.params['name'] # => ["Zara", "Huma", "Nuha"]

  cgi.keys # => ["name"]

  cgi.params # => {"name"=>["Zara", "Huma", "Nuha"]}

  注:Ruby的會(huì)自動(dòng)處理GET和POST方法。沒有單獨(dú)的處理這兩種不同的方法。

  一個(gè)相關(guān)的,但基本形式,可以發(fā)送正確的數(shù)據(jù),將有HTML代碼,就像這樣:

  

  

?

  

?

  First Name :

  

  Last Name :

  

  

?

  

  

  創(chuàng)建表單和HTML:

  CGI包含大量的方法用于創(chuàng)建HTML。會(huì)發(fā)現(xiàn)每個(gè)標(biāo)簽的方法之一。為了使這些方法,必須通過調(diào)用CGI.new創(chuàng)建一個(gè)CGI對象。

  為了使標(biāo)簽更容易嵌套,這些方法拿自己的內(nèi)容作為代碼塊。代碼塊返回一個(gè)字符串,這將在作為標(biāo)簽的內(nèi)容。例如:

  #!/usr/bin/ruby

  require "cgi"

  cgi = CGI.new("html4")

  cgi.out{

  cgi.html{

  cgi.head{ "/n"+cgi.title{"This Is a Test"} } +

  cgi.body{ "/n"+

  cgi.form{"/n"+

  cgi.hr +

  cgi.h1 { "A Form: " } + "/n"+

  cgi.textarea("get_text") +"/n"+

  cgi.br +

  cgi.submit

  }

  }

  }

  }

  注:CGI類的方法可以接受的方法參數(shù),這將設(shè)置HTTP方法(GET,POST等)上使用的表單提交。缺省情況下,在這個(gè)例子中使用的是POST。

  這將產(chǎn)生以下結(jié)果:

  Content-Type: text/html

  Content-Length: 302

  

  

  

  

  

  

?

  

?

  


?

  

A Form:

?

  

  

  

  

?

  

  

  引用字符串:

  當(dāng)處理URL和HTML代碼,您必須謹(jǐn)慎地引用一些字符。例如,一個(gè)斜杠字符(/)在URL中具有特殊的意義,所以它必須被轉(zhuǎn)義,如果它不是部分路徑名。

  例如,/查詢URL部分將被翻譯成字符串%2F/,使用它時(shí)必須翻譯。空間和與符號(hào)特殊字符。為了處理這個(gè)問題,CGI提供:在例行程序 CGI.escape 和 CGI.unescape.

  #!/usr/bin/ruby

  require 'cgi'

  puts CGI.escape(Zara Ali/A Sweet & Sour Girl")

  這將產(chǎn)生以下結(jié)果:

  Zara+Ali%2FA Sweet+%26+Sour+Girl")

  #!/usr/bin/ruby

  require 'cgi'

  puts CGI.escapeHTML('

Zara Ali/A Sweet & Sour Girl

')

?

  這將產(chǎn)生以下結(jié)果:

  

Zara Ali/A Sweet & Sour Girl

'

?

  以上就是Ruby中CGI編程的詳細(xì)教程了,更多相關(guān)內(nèi)容請繼續(xù)關(guān)注武林技術(shù)頻道。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 56av国产精品久久久久久久 | 日韩黄色片在线观看 | 国产精品久久久久久久久粉嫩 | 九九热九九热 | 亚洲人成网站免费播放 | 久久精品性视频 | 国产永久免费观看 | 欧美精品一区二区久久 | 免费h片网站 | chinesexxxx极品少妇 | 欧美一级在线免费 | 在线男人天堂 | 亚洲91精品 | 国产午夜精品久久久久久久蜜臀 | 久久里面有精品 | 精品国产91久久久久 | 久久久久久久久久久久久久国产 | 免费观看黄色一级视频 | 黄污污网站 | 国产成人高清成人av片在线看 | 免费a级网站 | 91美女啪啪 | 中文字幕国产一区 | 久久精精 | 午夜精品福利影院 | 日韩视频一 | 日韩毛片网 | 日韩av在线播放一区 | 91久久久久久亚洲精品禁果 | 国产亚洲精品久久久久久网站 | 高清国产午夜精品久久久久久 | 国产精品久久久久久久四虎电影 | 久久久久久久久亚洲精品 | 国产精品久久久久网站 | 亚洲最大的成人网 | 免费播放欧美毛片 | 欧美一级黄色网 | 狠狠99| 得得啪在线视频 | 天天操天天骑 | 韩国一级免费视频 |