PHP неправильно выводит прочитанный файл - PullRequest
0 голосов
/ 22 января 2019

У меня есть текстовый файл, который содержит код URL YouTube, например: 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>';
}
?>

Есть идеи, почему добавляются дополнительные биты или почему это не работает?

1 Ответ

0 голосов
/ 22 января 2019

Это Метка порядка байтов (BOM) файла в кодировке UTF-8. Сохраните файл без спецификации. Большинство текстовых редакторов имеют эту возможность.

Если у вас нет контроля над файлом и вам нужно удалить спецификацию, отметьте Как удалить несколько последовательностей спецификации UTF-8

Пропуск первых 3 символов / байтов также может работать, но это предполагает, что спецификация присутствует всегда:

substr(file_get_contents($project), 3);
...