php-替换字符串中的字符串

时间:2013-10-26 18:54:11

标签: php string wordpress search replace

您好我有以下搜索表单:

<form method='get'><input type='text' name='searchvalue' value='<? if (isset($_GET['searchvalue'])) echo $_GET['searchvalue'];?>' />&nbsp;<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(),但它似乎不起作用!

有什么建议吗?

4 个答案:

答案 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);可以解决问题。

http://www.php.net/manual/en/function.str-replace.php

答案 3 :(得分:-1)

  1. 根据文档,链接到Casimir et Hippolyte提到的PHP手册,第一个参数是搜索字符串,在你的情况下是'+',第二个参数是字符串,其中搜索将被替换,在你的情况下'% 20' 。所以你的命令似乎是正确的。

  2. 但请确保将函数值的返回值赋给变量,因为str_replace不会像对象上的方法那样更改给定的字符串值。它的功能是“仅”将更改后的字符串作为值返回。

  3. 除了以下事实:

    • 手动修改WP插件通常不是一个好主意
    • 带有插件的WP是一个非常复杂的系统,有时很难用你的代码动作破译所有表演。尽可能总是在类似情况下通过WordPress分别测试最小的,有问题的部分代码。