【问题标题】:PHP echo HTML filePHP 回显 HTML 文件
【发布时间】:2012-06-20 00:08:31
【问题描述】:

我正在尝试从 php 脚本中回显 html 文件的内容。很简单的实现

$response=file_get_contents("second.html");

echo $response;

当我直接点击 html 文件时,所有内容似乎都还可以,但是当我得到回显字符串时,它就不同了,html 包含带有 utf8 字符串和转义字符的 javascript。似乎“echo”正在更改字符串,因为我尝试将 $response 字符串保存在第二个 html 文件中,并且看起来也可以。我的问题是,有没有办法直接给出字符串而不进行处理。

似乎回显的 html 可以在 Firefox 上运行,但不能在 chrome 上运行,文件 html 可以在两者上运行。

【问题讨论】:

  • 你是在调用本地文件吗?
  • 这两页的编码是什么?
  • echo 没有添加 javascript 或转义字符。您是否在框架内工作?
  • 您可以将这两行合二为一:readfile('second.html');.
  • 我可以尝试合并,但我需要稍后处理 html,所以不能选择。

标签: php html echo


【解决方案1】:

如果你这样做,你会得到什么:

var_export(get_magic_quotes_gpc());

开了吗? (真)

如果是这样:

http://www.php.net/manual/en/security.magicquotes.disabling.php

$response = stripslashes(file_get_contents("second.html"));

【讨论】:

  • 魔术引号打开,第二个不起作用,因为正如我所说的字符串被完美读取,我在回显之前尝试了 file_put_contents 并且它没问题并且与回显字符串不同。跨度>
【解决方案2】:

可能是您没有告诉浏览器您使用的是什么编码?

header('Content-Type: text/html; charset=utf-8');

【讨论】:

  • 我也是这种情况。标题已经存在,并且正在显示纯文本。将尝试上面的建议。
【解决方案3】:

如果我理解正确,您想将 HTML 视为纯文本,您可以运行 PHP 脚本以使用“str_replace()”查找和替换“”字符到 HTML 实体。 HTML Entities

然后,当您回显时,PHP 将它们处理为纯文本中的“”,而不是 HTML。

了解有关在 PHP 中使用 str_replace() 查找和替换的更多信息:

str_replace PHP Tutorial
示例:

<?php
$response = file_get_contents("second.html");
str_replace("<", "&lt;",$response);
str_replace(">", "&gt;",$response;
echo $response;
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2018-05-02
    • 2015-10-17
    • 2011-06-30
    相关资源
    最近更新 更多