您好我有以下搜索表单:
<form method='get'><input type='text' name='searchvalue' value='<? if (isset($_GET['searchvalue'])) echo $_GET['searchvalue'];?>' /> <input type='submit' value='Search' /><input type='hidden' name='pagenum' value='1' /></form>
它是访问API并返回搜索结果的wordpress插件的一部分,当我将搜索数据发送到api时,file_get_contents("$api_url/book/index.php/name/$searchvalue?key=$api_key");
查询,如果它有空格,则需要格式化为:{ {1}}而是正在形成如下:This%20Is%20An%20Example
我打算用This+Is+An+Example
替换这些加号:str_replace()
,但它似乎不起作用!
有什么建议吗?
答案 0 :(得分:2)
使用rawurlencode()函数。
$searchvalue = rawurlencode($searchvalue);
这将解决您的问题。
答案 1 :(得分:0)
尝试按以下方式进行:
的file_get_contents( “$ api_url /书/ index.php的/名称/” rawurlencode($ searchvalue)。 “键= $ API_KEY?”);
检查文档:http://www.php.net/manual/en/function.rawurlencode.php
一些常规网址功能:http://php.net/manual/en/ref.url.php
答案 2 :(得分:-1)
$searchvalue = str_replace('+', '%20', $searchvalue);
可以解决问题。
答案 3 :(得分:-1)
根据文档,链接到Casimir et Hippolyte提到的PHP手册,第一个参数是搜索字符串,在你的情况下是'+',第二个参数是字符串,其中搜索将被替换,在你的情况下'% 20' 。所以你的命令似乎是正确的。
但请确保将函数值的返回值赋给变量,因为str_replace不会像对象上的方法那样更改给定的字符串值。它的功能是“仅”将更改后的字符串作为值返回。
除了以下事实: