Эхо-текст, включая двойные кавычки в PHP - PullRequest
0 голосов
/ 22 марта 2019

У меня есть $ _GET [q] из URL.Я пытаюсь вывести поисковый запрос обратно в окно поиска.Иногда люди могут отправлять запросы, заключенные в кавычки, и в этих случаях ECHO интерпретирует поисковый термин

ECHO $_GET[q];

как:

ECHO ""search term"";

, и в результате я получаю пустое поле поиска.Поисковые запросы с одинарной цитатой, такие как: дом Питера, работают нормально.

Когда я использую:

mysqli_real_escape_string($conn, $_GET[q])

Я получаю только обратную косую черту в окне поиска.

Как можно заполнить поле поиска поисковым термином, заключенным в двойные кавычки?

Ответы [ 4 ]

1 голос
/ 22 марта 2019
$str = preg_replace( '["|\']','',  $_REQUEST['q'] );

echo( $str ); //no double, no single quotes, faster than str_replace when you have to make more than 1 call to str_replace

или ...

$str = str_replace( '"','',  $_REQUEST['q'] ); //no double quotes, faster than preg_replace when you only make one call to str_replace

echo( $str ); //no double quotes
1 голос
/ 22 марта 2019

Вы также можете использовать:

echo str_replace('"','',$_GET[q]);

Это, конечно, удалит все двойные кавычки, поэтому, если они могут быть действительными где-то в поисковом запросе, лучше будет:

echo str_replace('"','"',$_GET[q]);

Не проверял это, но это также может работать:

echo html_entity_decode(htmlentities($_GET[q))
1 голос
/ 22 марта 2019

Вы можете попробовать:

$str = "Hello World!";
echo $str . "<br>";
echo chop($str,"");

Выход:

Hello World

Объяснение: chop() функция, которая помогает вам отрубить кавычки, которые кто-либо может добавить в строку.Вы можете манипулировать соответствующим образом для вашего кода.

1 голос
/ 22 марта 2019

Вы можете использовать addlashes

как это:

$t = 'peter "pan"';
echo addslashes($t);  // outputs: peter \"pan\"
...