Я добавил следующий код в файл index.php темы на одном из моих сайтов WordPress, чтобы на странице результатов поиска отображался заголовок, содержащий фактическое условие поиска. Другими словами, если я ищу слово синий, этот заголовок будет затем читать, Результаты поиска для: blue.
<?php
if ( is_search() ); ?>
<h3>Search results for: <?php print_r($_GET['s']); ?></h3>
Однако вывод невелик, когда фаза в кавычках помещается в строку поиска. Другими словами, если я ищу фразу «синий цвет», то этот заголовок гласит: Результаты поиска по запросу: \ «синий цвет \»
Я хотел бы знать, как остановить эти обратные слеши. Я провел некоторые исследования, но ничего, что я нашел, не сработало. Я новичок в PHP максимум.
просто используйте echo:
<?php
if ( is_search() ); ?>
<h3>Search results for: <?php echo $_GET['s']; ?></h3>
Вы должны «экранировать» эту переменную, прежде чем печатать ее! Представьте, если кто-то написал <script>
в строке поиска, которая занимала ваш сайт, когда он был напечатан. Читайте здесь: Экранирующие переменные. Один пример будет таким:
echo htmlspecialchars($_GET['s']);
Это удаляет символы, такие как <
а также >
так что никто не может распечатать сценарии или HTML на вашем сайте
PHP позволяет легко удалять значения из строки, используя explode()
команда.
$fractor = explode("\", $_GET['s']);
Ты можешь позвонить $fractor
что вам нравится, просто помните, что он становится массивом всех разделенных строк.
использование print
вместо print_r
<?php
if ( is_search() ); ?>
<h3>Search results for: <?php print($_GET['s']); ?></h3>
Есть некоторая разница в print_r
& print
Распечатать
Выводит только одну строку
Возвращает 1, поэтому его можно использовать в выражении
например печать «Привет»
или, если ($ expr && печать «фу»)
print_r ()
Выводит удобочитаемое представление любого значения
Принимает не только строки, но и другие типы, включая массивы и объекты, форматируя их для чтения
Полезно при отладке
Может возвращать свой вывод как возвращаемое значение (вместо эха), если задан второй необязательный аргумент