⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cgi.html

📁 perl教程
💻 HTML
📖 第 1 页 / 共 5 页
字号:
HTML &quot;standards&quot;.</p>
<p>
</p>
<h2><a name="creating_a_new_query_object__objectoriented_style__">CREATING A NEW QUERY OBJECT (OBJECT-ORIENTED STYLE):</a></h2>
<pre>
     <span class="variable">$query</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CGI</span><span class="operator">;</span>
</pre>
<p>This will parse the input (from both POST and GET methods) and store
it into a perl5 object called $query.</p>
<p>
</p>
<h2><a name="creating_a_new_query_object_from_an_input_file">CREATING A NEW QUERY OBJECT FROM AN INPUT FILE</a></h2>
<pre>
     <span class="variable">$query</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CGI</span><span class="operator">(</span><span class="variable">INPUTFILE</span><span class="operator">);</span>
</pre>
<p>If you provide a file handle to the <code>new()</code> method, it will read
parameters from the file (or STDIN, or whatever).  The file can be in
any of the forms describing below under debugging (i.e. a series of
newline delimited TAG=VALUE pairs will work).  Conveniently, this type
of file is created by the <code>save()</code> method (see below).  Multiple records
can be saved and restored.</p>
<p>Perl purists will be pleased to know that this syntax accepts
references to file handles, or even references to filehandle globs,
which is the &quot;official&quot; way to pass a filehandle:</p>
<pre>
    <span class="variable">$query</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CGI</span><span class="operator">(\</span><span class="variable">*STDIN</span><span class="operator">);</span>
</pre>
<p>You can also initialize the CGI object with a FileHandle or IO::File
object.</p>
<p>If you are using the function-oriented interface and want to
initialize CGI state from a file handle, the way to do this is with
<strong>restore_parameters()</strong>.  This will (re)initialize the
default CGI object from the indicated file handle.</p>
<pre>
    <span class="keyword">open</span> <span class="operator">(</span><span class="variable">IN</span><span class="operator">,</span><span class="string">"test.in"</span><span class="operator">)</span> <span class="operator">||</span> <span class="keyword">die</span><span class="operator">;</span>
    <span class="variable">restore_parameters</span><span class="operator">(</span><span class="variable">IN</span><span class="operator">);</span>
    <span class="keyword">close</span> <span class="variable">IN</span><span class="operator">;</span>
</pre>
<p>You can also initialize the query object from an associative array
reference:</p>
<pre>
    <span class="variable">$query</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CGI</span><span class="operator">(</span> <span class="operator">{</span><span class="string">'dinosaur'</span><span class="operator">=&gt;</span><span class="string">'barney'</span><span class="operator">,</span>
                       <span class="string">'song'</span><span class="operator">=&gt;</span><span class="string">'I love you'</span><span class="operator">,</span>
                       <span class="string">'friends'</span><span class="operator">=&gt;</span><span class="operator">[</span><span class="string">qw/Jessica George Nancy/</span><span class="operator">]}</span>
                    <span class="operator">);</span>
</pre>
<p>or from a properly formatted, URL-escaped query string:</p>
<pre>
    <span class="variable">$query</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CGI</span><span class="operator">(</span><span class="string">'dinosaur=barney&amp;color=purple'</span><span class="operator">);</span>
</pre>
<p>or from a previously existing CGI object (currently this clones the
parameter list, but none of the other object-specific fields, such as
autoescaping):</p>
<pre>
    <span class="variable">$old_query</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CGI</span><span class="operator">;</span>
    <span class="variable">$new_query</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CGI</span><span class="operator">(</span><span class="variable">$old_query</span><span class="operator">);</span>
</pre>
<p>To create an empty query, initialize it from an empty string or hash:</p>
<pre>
   <span class="variable">$empty_query</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CGI</span><span class="operator">(</span><span class="string">""</span><span class="operator">);</span>
</pre>
<pre>
       -or-</pre>
<pre>
   <span class="variable">$empty_query</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CGI</span><span class="operator">(</span><span class="operator">{}</span><span class="operator">);</span>
</pre>
<p>
</p>
<h2><a name="fetching_a_list_of_keywords_from_the_query_">FETCHING A LIST OF KEYWORDS FROM THE QUERY:</a></h2>
<pre>
     @keywords = $query-&gt;keywords</pre>
<p>If the script was invoked as the result of an &lt;ISINDEX&gt; search, the
parsed keywords can be obtained as an array using the <code>keywords()</code> method.</p>
<p>
</p>
<h2><a name="fetching_the_names_of_all_the_parameters_passed_to_your_script_">FETCHING THE NAMES OF ALL THE PARAMETERS PASSED TO YOUR SCRIPT:</a></h2>
<pre>
     @names = $query-&gt;param</pre>
<p>If the script was invoked with a parameter list
(e.g. &quot;name1=value1&amp;name2=value2&amp;name3=value3&quot;), the <code>param()</code> method
will return the parameter names as a list.  If the script was invoked
as an &lt;ISINDEX&gt; script and contains a string without ampersands
(e.g. &quot;value1+value2+value3&quot;) , there will be a single parameter named
&quot;keywords&quot; containing the &quot;+&quot;-delimited keywords.</p>
<p>NOTE: As of version 1.5, the array of parameter names returned will
be in the same order as they were submitted by the browser.
Usually this order is the same as the order in which the 
parameters are defined in the form (however, this isn't part
of the spec, and so isn't guaranteed).</p>
<p>
</p>
<h2><a name="fetching_the_value_or_values_of_a_single_named_parameter_">FETCHING THE VALUE OR VALUES OF A SINGLE NAMED PARAMETER:</a></h2>
<pre>
    <span class="variable">@values</span> <span class="operator">=</span> <span class="variable">$query</span><span class="operator">-&gt;</span><span class="variable">param</span><span class="operator">(</span><span class="string">'foo'</span><span class="operator">);</span>
</pre>
<pre>
              -or-</pre>
<pre>
    <span class="variable">$value</span> <span class="operator">=</span> <span class="variable">$query</span><span class="operator">-&gt;</span><span class="variable">param</span><span class="operator">(</span><span class="string">'foo'</span><span class="operator">);</span>
</pre>
<p>Pass the <code>param()</code> method a single argument to fetch the value of the
named parameter. If the parameter is multivalued (e.g. from multiple
selections in a scrolling list), you can ask to receive an array.  Otherwise
the method will return a single value.</p>
<p>If a value is not given in the query string, as in the queries
&quot;name1=&amp;name2=&quot; or &quot;name1&amp;name2&quot;, it will be returned as an empty
string.  This feature is new in 2.63.</p>
<p>If the parameter does not exist at all, then <code>param()</code> will return undef
in a scalar context, and the empty list in a list context.</p>
<p>
</p>
<h2><a name="setting_the_value_s__of_a_named_parameter_">SETTING THE <code>VALUE(S)</code> OF A NAMED PARAMETER:</a></h2>
<pre>
    <span class="variable">$query</span><span class="operator">-&gt;</span><span class="variable">param</span><span class="operator">(</span><span class="string">'foo'</span><span class="operator">,</span><span class="string">'an'</span><span class="operator">,</span><span class="string">'array'</span><span class="operator">,</span><span class="string">'of'</span><span class="operator">,</span><span class="string">'values'</span><span class="operator">);</span>
</pre>
<p>This sets the value for the named parameter 'foo' to an array of
values.  This is one way to change the value of a field AFTER
the script has been invoked once before.  (Another way is with
the -override parameter accepted by all methods that generate
form elements.)</p>
<p><code>param()</code> also recognizes a named parameter style of calling described
in more detail later:</p>
<pre>
    <span class="variable">$query</span><span class="operator">-&gt;</span><span class="variable">param</span><span class="operator">(</span><span class="string">-name</span><span class="operator">=&gt;</span><span class="string">'foo'</span><span class="operator">,</span><span class="string">-values</span><span class="operator">=&gt;</span><span class="operator">[</span><span class="string">'an'</span><span class="operator">,</span><span class="string">'array'</span><span class="operator">,</span><span class="string">'of'</span><span class="operator">,</span><span class="string">'values'</span><span class="operator">]</span><span class="operator">);</span>
</pre>
<pre>
                              -or-</pre>
<pre>
    <span class="variable">$query</span><span class="operator">-&gt;</span><span class="variable">param</span><span class="operator">(</span><span class="string">-name</span><span class="operator">=&gt;</span><span class="string">'foo'</span><span class="operator">,</span><span class="string">-value</span><span class="operator">=&gt;</span><span class="string">'the value'</span><span class="operator">);</span>
</pre>
<p>
</p>
<h2><a name="appending_additional_values_to_a_named_parameter_">APPENDING ADDITIONAL VALUES TO A NAMED PARAMETER:</a></h2>
<pre>
   <span class="variable">$query</span><span class="operator">-&gt;</span><span class="variable">append</span><span class="operator">(</span><span class="string">-name</span><span class="operator">=&gt;</span><span class="string">'foo'</span><span class="operator">,</span><span class="string">-values</span><span class="operator">=&gt;</span><span class="operator">[</span><span class="string">'yet'</span><span class="operator">,</span><span class="string">'more'</span><span class="operator">,</span><span class="string">'values'</span><span class="operator">]</span><span class="operator">);</span>
</pre>
<p>This adds a value or list of values to the named parameter.  The
values are appended to the end of the parameter if it already exists.
Otherwise the parameter is created.  Note that this method only
recognizes the named argument calling syntax.</p>
<p>
</p>
<h2><a name="importing_all_parameters_into_a_namespace_">IMPORTING ALL PARAMETERS INTO A NAMESPACE:</a></h2>
<pre>
   <span class="variable">$query</span><span class="operator">-&gt;</span><span class="variable">import_names</span><span class="operator">(</span><span class="string">'R'</span><span class="operator">);</span>
</pre>
<p>This creates a series of variables in the 'R' namespace.  For example,
$R::foo, @R:foo.  For keyword lists, a variable @R::keywords will appear.
If no namespace is given, this method will assume 'Q'.
WARNING:  don't import anything into 'main'; this is a major security
risk!!!!</p>
<p>NOTE 1: Variable names are transformed as necessary into legal Perl
variable names.  All non-legal characters are transformed into
underscores.  If you need to keep the original names, you should use
the <code>param()</code> method instead to access CGI variables by name.</p>
<p>NOTE 2: In older versions, this method was called <strong>import()</strong>.  As of version 2.20, 
this name has been removed completely to avoid conflict with the built-in
Perl module <strong>import</strong> operator.</p>
<p>
</p>
<h2><a name="deleting_a_parameter_completely_">DELETING A PARAMETER COMPLETELY:</a></h2>
<pre>
    <span class="variable">$query</span><span class="operator">-&gt;</span><span class="keyword">delete</span><span class="operator">(</span><span class="string">'foo'</span><span class="operator">,</span><span class="string">'bar'</span><span class="operator">,</span><span class="string">'baz'</span><span class="operator">);</span>
</pre>
<p>This completely clears a list of parameters.  It sometimes useful for
resetting parameters that you don't want passed down between script

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -