我查看了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方法是解决这个问题的唯一方法吗?
答案 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)
使用urlencode
或str_replace
。
urlencode
将使用加号替换所有空格,并使用str_replace
替换带加号的下划线或带减号的空格。
用下划线替换空格:str_replace(' ', '_', $url);
Urlencode您的$_GET*
:urlencode($url);