如何让指定HTML代码不渲染,仅保留文本内容?
嘿,我明白你的需求了——你想让那段包含H2标签和PHP输出的代码,在页面上直接显示成纯文本,而不是被浏览器渲染成一个标题元素对吧?没问题,这其实就是要把HTML特殊字符转义成实体,让浏览器把它们当作普通文本处理。
解决方案:转义HTML特殊字符
有两种常用的实现方式,我更推荐第二种,它更适配动态内容的场景:
方法1:手动转义标签
你可以逐个把HTML标签里的<替换成<,>替换成>,这样浏览器就不会解析这些标签了。修改后的代码片段如下:
<h2 class="nomeGame"><?php print htmlspecialchars($slideNews["game"]);?></h2>
不过这种方法比较繁琐,而且如果$slideNews["game"]里包含特殊字符(比如<或"),还需要额外转义才能避免显示异常。
方法2:用PHP的htmlspecialchars()自动转义
这是更可靠的方式,它会自动把所有HTML特殊字符转义成实体。你只需要把整个要显示的字符串(包括H2标签和动态内容)用这个函数包裹起来:
<?php echo htmlspecialchars('<h2 class="nomeGame">' . $slideNews["game"] . '</h2>'); ?>
不管$slideNews["game"]里有什么内容,都会被正确转义,整个片段会以纯文本形式显示在页面上,完全不会被渲染成HTML元素。
修改后的完整代码
把这段逻辑整合到你的原代码中,最终版本是这样的:
while ($slideNews = mysqli_fetch_array($slideImage )) { $cutNews = LimitarCaracteres($slideNews['textNews'], $maxCaracteres = 300); ?> <li> <a href="<?php echo ROOT;?>/News/<?php print $slideNews["id"].'/'.$slideNews["friendlyURL"];?>"> <span> <?php echo $cutNews; ?> </span> <?php echo htmlspecialchars('<h2 class="nomeGame">' . $slideNews["game"] . '</h2>'); ?> <img src="<?php echo $slideNews['secondImage']; ?>"> </a> </li> <?php } ?>
简单说下原理:htmlspecialchars()会把<转成<,>转成>,"转成"这些HTML实体,浏览器看到这些实体时,会显示成对应的字符,但不会把它们当作HTML标签来解析,正好满足你“不执行渲染,仅保留文本内容”的需求。
内容的提问来源于stack exchange,提问作者tiagob66
相关产品推荐
相关产品推荐

