Jadual Kandungan
Zara Ali/A Sweet & Sour Girl
Rumah pembangunan bahagian belakang Tutorial Python 简单介绍Ruby中的CGI编程

简单介绍Ruby中的CGI编程

Jun 10, 2016 pm 03:15 PM
ruby

Ruby 是一门通用的语言,不仅仅是一门应用于WEB开发的语言,但 Ruby 在WEB应用及WEB工具中的开发是最常见的。

使用Ruby您不仅可以编写自己的SMTP服务器,FTP程序,或Ruby Web服务器,而且还可以使用Ruby进行CGI编程。

接下来,让我们花点时间来学校Ruby的CGI编辑。
编写 CGI 脚本

最脚本的 Ruby CGI 代码如下所示:

#!/usr/bin/ruby puts "HTTP/1.0 200 OK" puts "Content-type: text/html\n\n" puts "This is a test"

你可以将该代码保持到 test.cgi 文件中,上次到服务器并赋予足够权限,即可作为 CGI 脚本执行。

如果你站的的地址为http://www.example.com/ ,即可用过http://www.example.com/test.cgi 访问该程序,输出结果为: "This is a test."。

浏览器访问该网址后,Web 服务器会在站点目录下找到 test.cgi文件,然后通过Ruby解析器来解析脚本代码并访问HTML文档。
使用 cgi.rb

Ruby 可以调用 CGI 库来编写更复杂的CGI脚本。

以下代码调用了 CGI 库来创建一个脚本的CGI脚本。

#!/usr/bin/ruby
 
require 'cgi'
 
cgi = CGI.new
puts cgi.header
puts "<html><body>This is a test</body></html>"
Salin selepas log masuk

以下代码中,创建了CGI 对象并打印头部信息。
表单处理

使用CGI库可以通过两种方式获取表单提交(或URL中的参数)的数据, 例如URL:/cgi-bin/test.cgi?FirstName=Zara&LastName=Ali。

你可以使用 CGI#[] 来直接获取参数FirstName和LastName:

#!/usr/bin/ruby
 
require 'cgi'
cgi = CGI.new
cgi['FirstName'] # => ["Zara"]
cgi['LastName'] # => ["Ali"]
Salin selepas log masuk

另外一种获取表单数据的方法:

#!/usr/bin/ruby
 
require 'cgi'
cgi = CGI.new
h = cgi.params # => {"FirstName"=>["Zara"],"LastName"=>["Ali"]}
h['FirstName'] # => ["Zara"]
h['LastName']  # => ["Ali"]
Salin selepas log masuk

以下代码用于检索所有的键值:

#!/usr/bin/ruby
 
require 'cgi'
cgi = CGI.new
cgi.keys     # => ["FirstName", "LastName"]
Salin selepas log masuk

如果表单包含了多个相同名称的字段,则该相同字段的值将保存在数组中。

以下实例中,指定表单中三个相同的字段"name",值分别为 "Zara", "Huma" 和 "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"]}
Salin selepas log masuk

注意:Ruby 会自动判断 GET 和 POST 方法,所以无需对两种方法区别对待。

以下是相关的HML代码:

<html>
<body>
<form method="POST" action="http://www.example.com/test.cgi">
First Name :<input type="text" name="FirstName" value="" />
<br />
Last Name :<input type="text" name="LastName" value="" />
 
<input type="submit" value="Submit Data" />
</form>
</body>
</html>
Salin selepas log masuk

创建 Form 表单和 HTML

CGI 包含了大量的方法来创建 HTML,每个HTML标签都有相对应的方法。 在使用这些方法前,比必须通过 CGI.new 来创建 CGI 对象。

为了使标签的嵌套更加的简单,这些方法将内容作为了代码块,代码块将返回字符串作为标签的内容。如下所示:

#!/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
     }
   }
  }
}
Salin selepas log masuk

字符串转义

当你在处理 URL 中的参数或者 HTML 表单数据时,需要对指定的特殊字符进行转义,如:引号("),反斜杠(/)。

Ruby CGI 对象提供了CGI.escape 和 CGI.unescape 方法来处理这些特殊字符的转义:

#!/usr/bin/ruby
 
require 'cgi'
puts CGI.escape(Zara Ali/A Sweet & Sour Girl")
Salin selepas log masuk
Salin selepas log masuk

以上代码执行结果如下:

#!/usr/bin/ruby
 
require 'cgi'
puts CGI.escape(Zara Ali/A Sweet & Sour Girl")
Salin selepas log masuk
Salin selepas log masuk

另一组实例:

#!/usr/bin/ruby
 
require 'cgi'
puts CGI.escapeHTML('<h1 id="Zara-Ali-A-Sweet-Sour-Girl">Zara Ali/A Sweet & Sour Girl</h1>')
Salin selepas log masuk

以上代码执行结果如下:

<h1 id="Zara-Ali-A-Sweet-Sour-Girl">Zara Ali/A Sweet & Sour Girl</h1>'
Salin selepas log masuk

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Mengapakah Python, Ruby dan bahasa lain telah menghentikan pengendali kenaikan? Mengapakah Python, Ruby dan bahasa lain telah menghentikan pengendali kenaikan? May 11, 2023 pm 04:37 PM

Ramai orang mungkin melihat fenomena, iaitu, dalam beberapa bahasa pengaturcaraan moden (sudah tentu, tidak merujuk kepada bahasa pengaturcaraan "terbaru"), pengendali kenaikan dan pengurangan telah dibatalkan. Dalam erti kata lain, tiada ungkapan seperti i++ atau j-- dalam bahasa ini, tetapi hanya i+=1 atau j-=1 ungkapan sedemikian. Jawapan ini akan meneroka latar belakang dan sebab fenomena ini dari perspektif falsafah reka bentuk. Tegasnya, mungkin berat sebelah untuk mengatakan "i++ semakin hilang", kerana nampaknya hanya Python, Rust dan Swift di kalangan bahasa pengaturcaraan arus perdana tidak menyokong pengendali kenaikan dan pengurangan. Apabila saya mula-mula bersentuhan dengan Python, ini juga

Analisis mendalam tentang persamaan dan perbezaan antara Golang dan Ruby Analisis mendalam tentang persamaan dan perbezaan antara Golang dan Ruby Jun 01, 2024 pm 08:46 PM

Perbezaan utama antara Go dan Ruby ialah Go ialah bahasa tersusun ditaip secara statik yang menyokong keselarian ringan dan pengurusan memori yang cekap, dan sesuai untuk menulis aplikasi konkurensi tinggi Ruby ialah bahasa tafsiran ditaip secara dinamik yang menyokong keselarian sebenar tetapi pengurusan memori Ia memerlukan kawalan manual dan sesuai untuk menulis aplikasi web yang fleksibel.

Bagaimanakah Ruby menggunakan sambungan Mysql2 untuk mengendalikan MySQL? Bagaimanakah Ruby menggunakan sambungan Mysql2 untuk mengendalikan MySQL? Apr 17, 2023 pm 10:07 PM

Ruby mengendalikan MySQL menggunakan mysql2 untuk menyambung ke mysql dan mengendalikan mysql. geminstallmysql2 menyambung ke mysql untuk mewujudkan sambungan: require'mysql2'conn=Mysql2::Client.new({host:'192.168.200.73',nama pengguna:'root',kata laluan:'P@ssword1!'}) Sambungan yang diterima pilihan termasuk: Mysql2::Clie

Cara menggunakan MySQL dan Ruby untuk melaksanakan fungsi laporan analisis data yang mudah Cara menggunakan MySQL dan Ruby untuk melaksanakan fungsi laporan analisis data yang mudah Sep 20, 2023 pm 05:09 PM

Cara menggunakan MySQL dan Ruby untuk melaksanakan fungsi laporan analisis data ringkas Pengenalan: Dalam era dipacu data hari ini, analisis data memainkan peranan penting dalam membuat keputusan dan pembangunan korporat. Sebagai bahagian penting dalam analisis data, laporan analisis data adalah sangat penting untuk mengatur, menggambarkan dan mentafsir data. Artikel ini akan memperkenalkan cara menggunakan MySQL dan Ruby untuk melaksanakan fungsi laporan analisis data yang mudah, dan menyediakan contoh kod yang sepadan. 1. Reka bentuk pangkalan data dan penciptaan jadual mesti merealisasikan analisis data dan fungsi pelaporan

Bagaimana untuk melaksanakan fungsi penukaran data mudah menggunakan MySQL dan Ruby Bagaimana untuk melaksanakan fungsi penukaran data mudah menggunakan MySQL dan Ruby Sep 21, 2023 am 08:07 AM

Cara menggunakan MySQL dan Ruby untuk melaksanakan fungsi penukaran data yang mudah Dalam kerja pembangunan sebenar, penukaran data selalunya diperlukan untuk menukar satu format data kepada yang lain. Artikel ini akan memperkenalkan cara menggunakan MySQL dan Ruby untuk melaksanakan fungsi penukaran data yang mudah, dan menyediakan contoh kod khusus. Pertama, kita perlu memasang dan mengkonfigurasi persekitaran MySQL dan Ruby. Pastikan anda memasang pangkalan data MySQL dan boleh menyambung ke pangkalan data melalui baris arahan atau alatan lain. Di samping itu, anda perlu memasang

Bagaimana untuk membangunkan keupayaan analisis log masa nyata menggunakan Redis dan Ruby Bagaimana untuk membangunkan keupayaan analisis log masa nyata menggunakan Redis dan Ruby Sep 21, 2023 am 08:57 AM

Cara menggunakan Redis dan Ruby untuk membangunkan fungsi analisis log masa nyata Dengan perkembangan Internet, semakin banyak maklumat direkodkan dalam bentuk log. Analisis log ini sangat berharga dan boleh membantu kami memahami pengendalian sistem, menemui masalah, mengoptimumkan prestasi, dsb. Dalam artikel ini, kami akan memperkenalkan cara membangunkan fungsi analisis log masa nyata menggunakan Redis dan Ruby. Pasang Redis dan Ruby Mula-mula, kita perlu memasang persekitaran Redis dan Ruby. Redis ialah pangkalan data dalam memori

Cara membina aplikasi web berskala menggunakan Vue.js dan Ruby Cara membina aplikasi web berskala menggunakan Vue.js dan Ruby Aug 03, 2023 pm 02:27 PM

Cara menggunakan bahasa Vue.js dan Ruby untuk membina aplikasi web boleh skala Dalam beberapa tahun kebelakangan ini, dengan pembangunan dan keperluan aplikasi web yang semakin meningkat, membina aplikasi web boleh skala telah menjadi topik penting. Sebagai rangka kerja bahagian hadapan JavaScript yang ringan, Vue.js menyediakan penyelesaian yang fleksibel, cekap dan berskala. Pada masa yang sama, Ruby, sebagai bahasa pengaturcaraan yang ringkas dan mudah dibaca, boleh digunakan untuk membina sistem back-end yang berkuasa. Artikel ini akan memperkenalkan cara menggabungkan bahasa Vue.js dan Ruby untuk dibina

Bagaimana untuk melaksanakan sistem pengundian mudah menggunakan MySQL dan Ruby Bagaimana untuk melaksanakan sistem pengundian mudah menggunakan MySQL dan Ruby Sep 20, 2023 pm 12:37 PM

Cara melaksanakan sistem pengundian mudah menggunakan MySQL dan Ruby Sistem pengundian ialah aplikasi dalam talian yang biasa digunakan untuk mengumpul pendapat pengguna tentang sesuatu isu atau topik. Dalam artikel ini, kami akan memperkenalkan cara menggunakan pangkalan data MySQL dan bahasa pengaturcaraan Ruby untuk melaksanakan sistem pengundian yang mudah. Pertama, kita perlu menyediakan persekitaran. Pastikan anda telah memasang pangkalan data MySQL dan mempunyai persekitaran pengaturcaraan Ruby. Jika ia belum dipasang, anda boleh memuat turunnya dari laman web rasmi dan ikut arahan untuk memasangnya. Seterusnya, kita perlukan

See all articles