Добавление + в строку PHP после ее ввода в форму поиска - PullRequest
0 голосов
/ 20 января 2012

вероятно, простой вопрос, но я не лучший в PHP.

Сначала я покажу вам код:

$prodTitle = $_GET['prodName'];

$html = file_get_html('http://www.play.com/Search.html?searchtype=allproducts&searchsource=0&searchstring='.$prodTitle.'');

Надеюсь, вы понимаете, что я пытаюсь сделать. В этом случае $ prodTitle будет ключевым словом из формы ввода текста. Однако проблема в том, что веб-сайт, на который я помещаю $ prodTitle , не будет принимать пробелы в строке поиска.

Так что если я найду Transformers Box Set , используя мою форму поиска, поиск не будет работать. В настоящее время я должен вставить Transformers + Box + Set , чтобы заставить его работать.

Есть ли способ добавить в "+", не записывая его в форму поиска?

Любая помощь будет принята с благодарностью!

Спасибо.

Ответы [ 5 ]

7 голосов
/ 20 января 2012

Вы можете исправить это с помощью urlencode() следующим образом:

$prodTitle = urlencode($_GET['prodName']);

Документы: http://nl.php.net/urlencode

Кроме того, убедитесь, что это безопасно. Никогда не доверяйте никакой информации от пользователей.

2 голосов
/ 20 января 2012

Вы можете заменить любое пространство на «+», прежде чем добавить его в URL.

$prodTitle = str_replace(' ', '+', $_GET['prodName']);
1 голос
/ 20 января 2012

Я думаю, что вы просите это:

$searchTerm = str_replace( ' ', '+', $_GET['prodName'] );

http://us3.php.net/str_replace

1 голос
/ 20 января 2012

Вы можете использовать функцию urlencode():

$prodTitle = $_GET['prodName'];
$html = file_get_html('http://www.play.com/Search.html?searchtype=allproducts&searchsource=0&searchstring='.urlencode($prodTitle).'');
0 голосов
/ 20 января 2012

Попробуйте этот код

$prodTitle = urlencode(htmlspecialchars($_GET['prodName']));

И надеюсь, это поможет

...