我在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
URL将以这种方式形成。。。
http://localhost/search/index.php?query=sample++++++++++++++1
有没有办法解决这个问题,或者POST方法是规避这个问题的唯一方法?
您将需要使用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>
使用urlencode
或str_replace
。urlencode
将用加号替换所有空格,使用str_replace
可以用加号替换下划线,也可以用减号替换空格。
用下划线替换空格:str_replace(' ', '_', $url);
URL编码您的$_GET*
:urlencode($url);