【问题标题】:PHP does not properly output read filePHP没有正确输出读取文件
【发布时间】:2019-06-16 09:10:48
【问题描述】:

我有一个包含 youtube url 代码的文本文件,例如:BzRBCM89GvI

我希望将其放置在 iFrame 中,并将文件的标题用作视频上方的标题。我几乎拥有它,但由于某种原因,该链接似乎不起作用。如果我检查该元素的 URL 看起来不错,但是当我将其复制粘贴到文本编辑器时,我会得到:https://www.youtube.com/embed/%EF%BB%BFBzRBCM89GvI

额外的:我认为“%EF%BB%BF”搞砸了。

这是 PHP 代码:

<?PHP
$projects = glob('images/Projects/Video/*');

foreach ($projects as &$project) {  
    $src = "https://www.youtube.com/embed/" . file_get_contents($project);
    echo'<h3>' . str_replace(".txt","",str_replace("images/Projects/Video/","",$project)) . '</h3><iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0" style="min-height: 300px; width: 100%;" type="text/html" src="' . $src . '"></iframe>';
}
?>

知道为什么要添加额外的位或为什么它不起作用吗?

【问题讨论】:

  • 你是如何保存文件的?
  • 我正在使用通过我的网络服务器上的 FTP 连接的 Visual Studio,因此只需右键单击并新建文件。

标签: php iframe embed


【解决方案1】:

这是 UTF-8 编码文件的Byte Order Mark (BOM)。保存没有 BOM 的文件。大多数文本编辑器都有这种能力。

如果您无法控制文件并需要删除 BOM,请查看How to remove multiple UTF-8 BOM sequences

跳过前 3 个字符/字节也可能有效,但这假设 BOM 始终存在:

substr(file_get_contents($project), 3);

【讨论】:

  • 确实!我找到了一些删除 BOM 的代码,现在它可以工作了!谢谢!
猜你喜欢
  • 2016-02-26
  • 2022-12-30
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
相关资源
最近更新 更多