好的,我正在研究一个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);
?>
顺便说一句,我知道这段代码不会工作,但在输入我的代码时它表现得很奇怪。好的,有人可以告诉我如何插入元素,但它们隐藏在源中而不是元素中?
答案 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><?php
hi
?></pre></body>
</html>
没有任何魔法可言。