|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为函数实在是太多了,慢慢的你就会知道,知道有这个函数就可以。 清单 2 中的暗示法固然是便利的,但它仅在 PHP 伪指令 register_globals 被设置为 on 时才可用。在版本 4.2 之前,这是缺省设置,很多 PHP 开辟人员乃至没无意识到有如许的成绩。但是,从版本 4.2 入手下手,register_globals 的缺省设置是 off,在此情形下,该暗示法不克不及正常任务,由于不再用恰当的值创立并初始化变量。
但是,您可以用其它的办法初始化这些变量。第一个办法是更改 register_globals 的值。很多利用同享办事器的开辟人员无权为全部办事器更改该值,但可以针对某个特定站点改动行动。如您有 .htaccess 文件的会见权,您可以经由过程添加以下伪指令启用 register_globals:
php_flag register_globals on
鉴于对该特征是不是可用的不肯定性,建议开辟人员最好不要利用或依托这类获得变量的办法。那末您有甚么选择呢?
假如您的体系运转的是版本 4.1 或更高版本,则您的另外一个选择是利用 import_request_variables() 有选择地注册全局变量纠合。您可使用该函数导入 get、post 和 cookie 值,并且假如您情愿的话,还可以给每项添加前缀。例如:
<?php
import_request_variables(gp, "formval_");
echo "Ship = ".$formval_ship;
echo "<br />";
echo "Tripdate = ".$formval_tripdate;
echo "<br />";
echo "Exploration = ".$formval_exploration;
echo "<br />";
echo "Contact = ".$formval_contact;
?>
这里,导入了 get 和 post 值 ― 利用 c 来导入 cookie 值 ― 并且因为 p 跟在 g 以后,所以 post 值将掩盖同名的 get 值。
但假如您象很多开辟人员一样没有运转版本 4.1 或更高版本,那怎样办呢?
会见表单值纠合
关于那些运转较早版本或不肯利用全局变量的人来讲,可以选择利用 $HTTP_GET_VARS 和 $HTTP_POST_VARS 数组。虽然其实不同意利用这些纠合,但它们依然可用,并且仍被普遍利用。认真的不再利用它们时,将用版本 4.1 中添加的 $_GET 和 $_POST 数组替换它们。
这两类数组的类型都是散列表(hash table)。散列表是经由过程字符串值而不是整数来创立索引的数组。利用表单时,可以经由过程值的称号来会见值,如清单 3 所示:
清单 3. 经由过程散列表会见表单值
<?
$ship_value = $HTTP_GET_VARS['ship'];
echo $ship_value;
echo "<br />";
$tripdate_value = $HTTP_GET_VARS['tripdate'];
echo $tripdate_value;
echo "<br />";
$exploration_value= $HTTP_GET_VARS['exploration'];
echo $exploration_value;
echo "<br />";
$contact_value = $HTTP_GET_VARS['contact'];
echo $contact_value;
?>
利用该办法,您可以经由过程称号来检索每一个字段的值。
单名,多值
到如今为止,每一个称号仅对应一个值。假如有多个值会如何?例如,crew species 列表框答应用称号 crew 提交多个值。
幻想情形下,您但愿将这些值作为数组利用,如许就能够显式地检索它们。要完成这一点,您必需对 HTML 页面略加修改。要作为数组提交的字段应当用方括号定名,如 crew[] 中:
清单 4. 修正 HTML 页面
...
<td>
<select name="crew[]" multiple="multiple">
<option value="xebrax">Xebrax</option>
<option value="snertal">Snertal</option>
<option value="gosny">Gosny</option>
</select>
</td>
...
一旦您作出更改,检索表单值实践上发生数组:
清单 5. 将变量作为数组会见
...
$crew_values = $HTTP_GET_VARS['crew'];
echo "0) ".$crew_values[0];
echo "<br />";
echo "1) ".$crew_values[1];
echo "<br />";
echo "2) ".$crew_values[2];
...
如今,提交页面后会显示多个值:
0) snertal
1) gosny
2)
起首要注重这是一个下标从 0 入手下手的数组。第一个碰到的值在地位 0 中,接上去的值在地位 1,以此类推。在本例中,我只提交了两个值,所以第三项为空。
凡是,您不晓得将提交几何项,因而您可以使用它是数组这一现实利用 sizeof() 函数来肯定提交了几何值,而不用直接挪用每项:
清单 6. 肯定数组的巨细
...
for ($i = 0; $i < sizeof($crew_values); $i++) {
echo $crew_values[$i];
echo "<br />";
}
...
但是,有时成绩不是值太多,而是基本没有
我先解释一下我的学习思路。 |
|