PHP脚本选择一个人来泡茶
在任何办公室中,都有谁会做下一轮茶的争论。以下脚本可让您随机选择要泡茶的人。与其让脚本一次执行一次并丢弃信息,不如我认为这是个好主意,在下次您想接人泡茶时,使用cookie来保存表单数据是个好主意。如果您想了解Cookie的工作原理,这是一个很好的练习。
首先,我们需要变量,第一个是人员阵列,第二个是办公室人数。
$people = array(); $number = 10;
现在,我们可以构建包含所有名称的表单。在这里,我们只是循环浏览一个简单的for循环,如果$people数组中存在一个数组项,其值为$i,则可以在表单中使用它。
接下来,我们需要获取来自表单的变量并将其存储在数组中,因为我们使用了带方括号的名称,因此可以像访问数组一样访问peopleGET变量。
if ( isset($_GET['people']) ) { $people = $_GET['people']; }
现在,我们可以选择谁来煮茶。在这里,我结合使用array_filter()来删除数组中的所有空白条目并从数组array_rand()中随机选择一个键。array_rand()如果给定一个空白数组,该函数将返回NULL,因此我们需要考虑首先访问该页面的用户。
if ($who = array_rand(array_filter($people))) { $teaMaker = $people[$who]; echo '' . $teaMaker . ' will be making the tea!
'; }
使用此脚本启用cookie非常容易,并且只需要添加少量代码即可。首先,如果people变量存在,我们需要创建一个cookie。因为这是一个数组,并且该setcookie()函数需要一个字符串,所以我们需要使用该serialize()函数将$people数组转换为字符串值。
if (isset($_GET['people'])) { $people = $_GET['people']; setcookie("teaCookie", serialize($people)); }
现在我们已经创建了cookie,我们需要在页面重新加载时再次检索它。所有cookie均通过引用保留在$_COOKIE超全局数组中。一旦确定cookie存在,就可以使用户unserialize()再次将序列化的字符串转换为数组。
if (isset($_COOKIE['teaCookie'])) { $people = unserialize($_COOKIE["teaCookie"]); }
现在,我们的$people数组处于原始状态。
最后,我没有连续设置和取消设置cookie,而是添加了一个链接,该链接使您可以从列表中选择另一个人,而无需运行表单。我们首先需要确保我们的cookie存在,然后再允许此链接,因为它不会执行任何操作。
当然,如果您不喝茶或独自工作,该脚本并没有那么有用,但是可以轻松地将其修改为其他功能。