如何从搜索查询中删除斜杠

时间:2016-02-11 04:51:04

标签: php wordpress search backslash

我将以下代码添加到我的一个WordPress网站上的主题的index.php文件中,以便在搜索结果页面上显示包含实际搜索词的标题。换句话说,如果我搜索 blue 这个词,那么这个标题会被读取,搜索结果为:blue

<?php
if ( is_search() ); ?>
<h3>Search results for: <?php print_r($_GET['s']); ?></h3>

当引号中的某个阶段进入搜索栏时,输出效果不佳。换句话说,如果我搜索短语“蓝色是一种颜色”,则此标题为:搜索结果:\“蓝色是一种颜色\”

我想知道如何阻止这些反斜杠出现。我做了一些研究,但我发现没有任何效果。我最多只是一个php初学者。

3 个答案:

答案 0 :(得分:2)

只需使用echo:

<?php
if ( is_search() ); ?>
<h3>Search results for: <?php echo $_GET['s']; ?></h3>

你必须&#34;逃避&#34;这个变量在你打印之前!想象一下,如果有人在搜索栏中写了一个<script>,在打印时会对您的网站进行操作。请继续阅读:Escaping variables。一个例子是这样的:

echo htmlspecialchars($_GET['s']);

这会删除<>等字符,因此没有人可以在您的网站上打印脚本或HTML

答案 1 :(得分:0)

PHP允许您使用explode()命令轻松地从String中删除值。

$fractor = explode("\", $_GET['s']);

您可以调用$fractor您喜欢的内容,只需记住它就会成为所有拆分字符串的数组。

参考:http://php.net/manual/en/function.explode.php

答案 2 :(得分:-1)

使用print代替print_r

<?php
if ( is_search() ); ?>
<h3>Search results for: <?php print($_GET['s']); ?></h3>

print_r&amp; print

打印

  • 仅输出一个字符串

  • 返回1,因此可以在表达式中使用

  • e.g。打印&#34;您好&#34;

  • 或者,如果($ expr&amp;&amp; print&#34; foo&#34;)

<强>的print_r()

  • 输出任何一个值的人类可读表示

  • 不仅接受字符串,还接受包括数组和对象在内的其他类型,将其格式化为可读

  • 调试时很有用

  • 如果给出第二个可选参数,可以将其输出作为返回值(而不是回显)返回