Как заменить знак плюс (+) и при этом не заменить% 2B с помощью php?

Это мой код для test.php

<?PHP
include("connect.php");
$search_value = mysqli_real_escape_string($db_mysqli,$_GET['search_value']);

$search_value_show_text = preg_replace('/\+/', ' ', $search_value);
echo $search_value_show_text;
?>

Когда я проверяю www.example.com/test?search_value=%2B+%2B

Это не эхо ничего (я имею в виду, это показать 3 пробела).

Я хочу показать + +

Как я могу сделать ?

-1

Решение

Вы, кажется, не понимаете, что вы делаете. Знак плюс в URL означает пробел, так что это один. Затем вы заменяете два других плюса (которые автоматически декодируются из %2B форма) с пробелами, и в итоге вы получите три пробела. Просто ничего не делать (или использовать urldecode() если нужно) с вашими входными данными, и вы должны быть хорошими.

Также вы используете связанные с MySQL вызовы без использования MySQL — это неправильно

3

Другие решения

$search_value = 'www.example.com/test?search_value=%2B+%2B';
$search_value_show_text = preg_replace('/\+/', ' ', $search_value);
echo $search_value_show_text ."<br/>";
$search_value_show_text = preg_replace('/\%2B/', '+', $search_value_show_text);
echo $search_value_show_text;

выход:

www.example.com/test?search_value=%2B %2B
www.example.com/test?search_value=+ +
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector