【问题标题】:Run original external HTML in PHP在 PHP 中运行原始的外部 HTML
【发布时间】:2021-01-13 11:23:19
【问题描述】:

我有一些 html 文件存储在 AWS S3 中,我使用 AWS CloudFront 访问它们。

我需要从我的 PHP 代码中调用它们,如下所示:

echo file_get_contents('https://mycdnurl.com/myhtmlfile.html');

它可以工作,但它会忽略所有换行符,有时它会因为 html 中的一些 javascript 代码而中断代码:

// some javascript comment
var test = test

变成:

// some javascript comment var test = test

如果我直接从浏览器访问该文件,效果很好。但我需要在没有 iframe 的情况下从 PHP 调用。

我尝试搜索,但没有找到任何有用的东西。

【问题讨论】:

  • 这个答案对您有帮助吗?

标签: php


【解决方案1】:

这听起来不对,因为file_get_contents() 保留了文件内容,包括换行符。

  • 也许您的文件包含错误类型的换行符,例如Unix、Windows、Mac?

  • 编码也可能存在问题(我对此表示怀疑)。 尝试将文件内容加载为 UTF-8 并回退到您的其他编码,例如拉丁语 1(如果适用)。

    function file_get_contents_utf8($fn) {
        $content = file_get_contents($fn);
        return mb_convert_encoding($content, 'UTF-8',
            mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
    }
    
  • 如果没有任何效果,您可以尝试使用 cURL 代替 file_get_contents()。 Doc, example.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 2015-01-22
    • 1970-01-01
    • 2021-11-23
    • 2015-05-01
    • 2017-04-23
    • 1970-01-01
    相关资源
    最近更新 更多