PHP - GET方法为URL添加不必要的添加符号

时间:2014-04-26 23:08:15

标签: php html get

我查看了Stack Overflow以获取PHP推荐的方法类型; GET或POST方法。社区推荐,GET方法似乎是为简单的搜索引擎传递查询的好主意。

不幸的是,GET方法在URL中添加了不必要的附加符号来表示空格。基本上是一个美学问题。

我尝试使用trim()函数来减少空格,但是,只有在提交数据并且已经使用参数设置了URL之后才会调用它。

这是一个我认为不与我合作的index.php文件。

<?php $query = ""; ?>
<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <form action="index.php" method="GET">
            <input type="text" name="query" placeholder="Enter Query">
            <input type="submit" text="Search">
        </form>

        <?php
            $query = $_GET['query'];
            print $query;
        ?>
    </body>
</html>

一个例子,如果需要的话。如果我在搜索栏中输入此查询...

sample 1

网址将以这种方式形成......

http://localhost/search/index.php?query=sample++++++++++++++1

有没有办法解决这个问题,或者POST方法是解决这个问题的唯一方法吗?

2 个答案:

答案 0 :(得分:0)

您需要使用POST方法。

 <!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="index.php" method="POST">
        <input type="text" name="query" placeholder="Enter Query">
        <input type="submit" text="Search">
    </form>

    <?php
        $query = $_GET['query'];
        print $query;
    ?>
</body>
</html>

答案 1 :(得分:0)

使用urlencodestr_replaceurlencode将使用加号替换所有空格,并使用str_replace替换带加号的下划线或带减号的空格。

用下划线替换空格:str_replace(' ', '_', $url);

Urlencode您的$_GET*urlencode($url);