hastebin / pastebin如何隐藏标签?

时间:2017-07-25 18:45:15

标签: javascript php jquery html

好的,我正在研究一个hastebin / pastebin类型的应用程序。我需要一点帮助。如何显示原始粘贴但使用隐藏在源中但在chrome中的元素上显示的预标记?例如,如果你转到https://hastebin.com/raw/mikepucegu,你会看到它是原始的。如果您查看来源,则仅显示文本

"
<?php
hi
?>
"

好的,我的问题是我该怎么做?这是元素http://prntscr.com/g06s9l的图像,但它在源代码中没有显示任何内容?我很困惑,但我想这样做。所以到目前为止我得到了什么::

<?php
$con=mysqli_connect("localhost","root","","blazebin");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}


$result = mysqli_query($con,"SELECT * FROM pastes WHERE id=".$_GET['id']."");
while($row = mysqli_fetch_array($result))
{
echo "<script>document.write('<pre>');".$row['paste']."</pre>";
}
mysqli_close($con);
?>

顺便说一句,我知道这段代码不会工作,但在输入我的代码时它表现得很奇怪。好的,有人可以告诉我如何插入元素,但它们隐藏在源中而不是元素中?

2 个答案:

答案 0 :(得分:1)

如果您使用background-position Content-Type发送回复,则浏览器会将其显示为纯文本。在PHP中,您可以通过调用:

来完成此操作
text/plain

您必须先致电 发送任何输出。完成此操作后,任何输出都将显示为纯文本 - 输出中的任何HTML标记都将被忽略。

(您正在查看的HTML元素是一个红色的鲱鱼!它们是由HTTP Spy浏览器扩展注入的。)

答案 1 :(得分:0)

网站无法选择您是否看到呈现网站的标签,这只是您的浏览器选择向您显示内容的方式,即,当您看到“原始”文本时,您的浏览器会将其包裹在{{ 1}}标记并将其放在pre元素中,但由于它只是纯文本,因此当您想要查看源时,它会选择仅显示所述文本,实际上,如果您在查看时检查文档只有源代码,您才会看到浏览器实际上将其包裹在body周围并再次将其放入pre。总结:

这就是你所看到的:

body

这是浏览器向您展示的内容:

<?php
hi
?>

当您想要查看明文文档的来源时,它会选择向您显示:

<html>

    <head>
        <link rel="alternate stylesheet" type="text/css" href="resource://gre-resources/plaintext.css" title="Ajustar líneas largas">
    </head>

    <body cz-shortcut-listen="true"><pre>&lt;?php
    hi
    ?&gt;</pre></body>

</html>

没有任何魔法可言。