【问题标题】:How to strip slashes from search query如何从搜索查询中去除斜杠
【发布时间】:2016-02-11 04:51:04
【问题描述】:

我在我的一个 WordPress 网站上将以下代码添加到主题的 index.php 文件中,以便在搜索结果页面上显示包含实际搜索词的标题。换句话说,如果我搜索单词 blue,则此标题将显示为 Search results for: blue

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

但是当引号中的一个阶段被放入搜索栏中时,输出不是很好。换句话说,如果我搜索短语“蓝色是一种颜色”,那么这个标题会显示为:搜索结果:\“蓝色是一种颜色”

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

【问题讨论】:

    标签: php wordpress search backslash


    【解决方案1】:

    只需使用回声:

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

    你必须在打印之前“转义”这个变量!想象一下,如果有人在搜索栏中写了一个&lt;script&gt;,当它被打印时操纵了你的网站。继续阅读:Escaping variables。一个例子是这样的:

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

    这会删除 &lt;&gt; 等字符,因此没有人可以将脚本或 html 打印到您的网站中

    【讨论】:

    • 这似乎对我不起作用(或者我可能只是不太了解它)。 WordPress 主题开发者给了我这个建议:&lt;?php if ( is_search() ); ?&gt; &lt;h3 style="color: #7b5a4d"&gt;&lt;em&gt;Search results for: &lt;?php print_r (stripslashes($_GET['s'])); ?&gt;&lt;/em&gt;&lt;/h3&gt; 这是一个好的解决方案吗?它有效。
    • @JuttaDuncan 是的,可以删除斜线。你仍然应该逃避输入。我不知道为什么你会得到斜线,这一定是在其他地方发生的,但这会很好地删除它们!
    • 太棒了!!非常感谢。我现在正在使用它,它似乎运行良好:&lt;?php if ( is_search() ); ?&gt; &lt;h3&gt;Search results for: &lt;?php echo htmlspecialchars (stripslashes($_GET['s'])); ?&gt;&lt;/h3&gt;
    【解决方案2】:

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

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

    你可以随意调用$fractor,只要记住它变成了所有拆分字符串的数组。

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

    【讨论】:

      【解决方案3】:

      使用print 代替print_r

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

      print_rprint有些区别

      打印

      • 只输出一个字符串

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

      • 例如打印“你好”

      • 或者,如果 ($expr && print "foo")

      print_r()

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

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

      • 调试时有用

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

      【讨论】:

        猜你喜欢
        • 2011-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-14
        • 2016-10-19
        • 2019-10-26
        • 1970-01-01
        相关资源
        最近更新 更多