我在我的一个WordPress网站上的主题索引.php文件中添加了以下代码,以便在搜索结果页面上显示一个包含实际搜索词的标题。换句话说,如果我搜索单词蓝色,则此标题将显示为"搜索结果:蓝色"。
<?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
,只需记住它将成为所有拆分字符串的数组。
参考: http://php.net/manual/en/function.explode.php
使用 print
而不是 print_r
<?php
if ( is_search() ); ?>
<h3>Search results for: <?php print($_GET['s']); ?></h3>
print_r
和print
有一些差异
打印
仅输出单个字符串
返回 1,因此可以在表达式中使用
例如打印"你好"
或者,如果($expr&&打印"foo")
print_r()
输出任何一个值的人类可读表示形式
不仅接受字符串,还接受其他类型的数组和对象,并将它们格式化为可读
调试时很有用
如果给出第二个可选参数,可能会将其输出作为返回值(而不是回显)