HTML搜索栏区分大小写

3
我有一个搜索栏,当用户输入一个单词时,会显示包含该单词的文件名。为了更清楚地解释这一点,我将添加我目前正在处理的代码。
HTML
<form method="post" action="submit.php">
            <input name="search" type="text" value="">             
                <button type="submit" name="Submit">
                Submit</button>
                   </form>

submit.php

if (isset($_POST['search'])){
              header( 'Location: http://headerLocation/'.$_POST['search'].'.xml' ) ;}
              else {
                  echo "Warning, your request could not be completed";
              }

?>

这个程序工作得很完美,除了它是区分大小写的,而且如果有额外的空格也会出错。例如,如果我搜索"hello",文件名是"Hello"或"hello "时,搜索就无法正常工作。有没有人知道如何使其忽略大小写和空格?谢谢。

如果你的 XML 只包含小写字母,那么你可以在运行时将 $_POST['search'] 转换为小写字母。 - samayo
PHP的字符串中是否有'toLower()'方法? - tymeJV
@tymeJV 是 strtolower() 吗? - Max
5个回答

5
您可以对POST数据进行修剪,仅使用小写字母来命名文件,并将“search”转换为小写字母。
类似这样: submit.php
if (isset($_POST['search'])){
              header( 'Location: http://headerLocation/'.strtolower(trim($_POST['search'])).'.xml' ) ;}
              else {
                  echo "Warning, your request could not be completed";
              }

?>

3

使用strtolower($_POST['search'])$_POST['search']将得到小写的文件名。

将其与此答案结合使用应该就可以解决问题。


2

为了避免空格,请使用以下方法:
在头部函数中将 $_POST['search'] 更改为 trim($_POST['search'])


那只会避免末尾和/或前导空格。 - Matt

1
你可以使用

标签


$search = strtolower($_POST['search']);
$searchtrim = trim($search);

if (isset($searchtrim)){
              header( 'Location: http://headerLocation/'.$searchtrim.'.xml' ) ;}
              else {
                  echo "Warning, your request could not be completed";
              }

?>

1
当你进行搜索时,只需执行以下操作:

   trim(strtolower($searchTerm))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接