Это мой код для 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 пробела).
Я хочу показать + +
Как я могу сделать ?
Вы, кажется, не понимаете, что вы делаете. Знак плюс в URL означает пробел, так что это один. Затем вы заменяете два других плюса (которые автоматически декодируются из %2B
форма) с пробелами, и в итоге вы получите три пробела. Просто ничего не делать (или использовать urldecode()
если нужно) с вашими входными данными, и вы должны быть хорошими.
Также вы используете связанные с MySQL вызовы без использования MySQL — это неправильно
$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=+ +