PHP $ _REQUEST作为数组

时间:2009-10-09 13:58:09

标签: php arrays request

我有一个搜索表单,我希望$ _ReQUEST搜索条件作为一个数组,这样我就可以列出每个搜索项,将每个术语包装在一个样式中。我该怎么做?

编辑:这是请求的代码。

<form action="http://localhost/wordpress" id="search" method="get">
<input type="text" size="30" id="s" name="s" value="Type and hit enter" onfocus="javascript:this.value='';" onblur="javascript:this.value='Type and hit enter';"/>
<br/>
<input type="submit" value="Search"/>
</form>

更新:感谢各位回复。我会用爆炸,看起来相当简单。加上名字听起来很酷^^

7 个答案:

答案 0 :(得分:5)

表格形式:

<input type="text" name="terms[]" />
<input type="text" name="terms[]" />
<input type="text" name="terms[]" />

在表单处理器中:

<? foreach($_REQUEST['terms'] as $term) { ?>
    <span style="searchterm"><?= htmlspecialchars($term) ?></span>
<? } ?>

答案 1 :(得分:3)

如果您希望用户在单独的输入控件中输入多个搜索词,则上述答案应该会有所帮助。但是,您的示例表单让我想知道您是否只想使用一个搜索短语输入文本框。如果是这样,这可能就是你要找的东西:

<?php
  $searchTerms = preg_split("/[\s,]+/", $_REQUEST['SearchTerms']);

   foreach($searchTerms as $term) { ?>
     <span class="term"><?= htmlentities($term) ?></span>
<? 
   }
?>

答案 2 :(得分:2)

我是这样做的..

传递一个数组(它实际上只是PHP的一个字符串):

  

http://www.somesite.net/myscript.php?myArray=Planes,Trains,Automobiles

然后在脚本中,只是爆炸字符串:

  

$ myArray = explode(“,”,$ _REQUEST ['myArray']);

也许不完全是你想要的。

答案 3 :(得分:1)

我想您希望用户只有一个条目输入,然后您可以将其拆分为一组单独的搜索词。

将输入拆分为空格(将连续的空格字符视为一个)以导出单独的术语。

例如:

$termList = preg_split("/\s+/", trim($_REQUEST['s']));
foreach($termList as $term) { echo "<span>".htmlspecialchars($term)."</span>\n"; }

当然,在使用之前不要忘记正确过滤和转义输入。

答案 4 :(得分:1)

如果您想按空格符号中断搜索字词,请尝试以下代码:

<?php
   $search_terms = explode(" ", $_REQUEST['s']);
   foreach($search_terms AS $search_term_item) {
     echo "<span class=\"SearchTerm\">".htmlspecialchars($search_term_item)."</span>";
   }
?>

答案 5 :(得分:0)

在HTML表单元素中,您可以将名称指定给数组,如下所示:

<select id="MySelect" multiple="multiple" name="SearchTerms[]" class="MyClass">
    ...
</select>

然后,当您在提交后处理表单时,您可以执行以下操作:

<?php
    foreach($_REQUEST['SearchTerms'] as $SearchTerm)
    {
        Print("<span class=\"SearchTerm\">$SearchTerm</span>");
    }
?>

答案 6 :(得分:0)

以下是将表单结果作为数组传递的更多详细信息: http://us.php.net/manual/en/faq.html.php#faq.html.arrays