2013-10-26 3 views
0

Привет У меня есть следующие формы поиска:PHP- заменить строку в строке

<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> 

Это является частью WordPress плагин, который получает доступ к API и возвращает результаты поиска, когда я отправить данные поиска в апи, file_get_contents("$api_url/book/index.php/name/$searchvalue?key=$api_key"); запрос, если он содержит пробелы, должно быть отформатированный как это: This%20Is%20An%20Example вместо этого он быть отформатированный как это: This+Is+An+Example

Я собирался заменить плюсы используя str_replace(), как так: str_replace("+", "%20", $searchvalue);, но это Безразлично» похоже, работает!

Любые предложения?

ответ

2

Использование rawurlencode() функция.

$searchvalue = rawurlencode($searchvalue); 

Это исправит вашу проблему.

-1
  1. соответствии с документацией, ссылка на PHP инструкции, упомянутой Казимир и Ипполит, первым параметром является строка поиска, в вашем случае «+», вторым параметром является строка, в которой поиск будет заменен, в вашем случае «% 20». Так что вы командуете, кажется, правильно.

  2. Но убедитесь, что вы назначаете возврат из значения функции в переменную, потому что str_replace не меняет заданное строковое значение, как метод на объекте. Это функция, и она «только» возвращает измененную строку как значение.

Помимо фактов, что:

  • вручную модификации WP плагины, как правило, не является хорошей идеей
  • WP с его плагинов очень сложная система, и иногда трудно расшифровать все выполнять с вашим кода. Насколько это возможно всегда в аналогичном случае, минимальный, проблемный код части разделяется WordPress.
+0

Это мой плагин, который я создаю, и у меня это в SVN .... –

Смежные вопросы