Я пытаюсь создать галерею, которая вызывает имена изображений из базы данных плоских файлов, используя функцию PHP fgets. В галерее есть разные разделы, каждый со своим изображением по умолчанию, и небольшой список изображений, из которых пользователи могут выбирать. Все работает нормально, кроме одной кнопки.
У меня есть одна кнопка на странице, которая должна сбрасывать все галереи на изображения по умолчанию с помощью Javascript OnClick. Он работает именно так, как я хочу, с одной небольшой заминкой: он копирует разрыв строки в конце строки вместе с символами в строке, нарушая Javascript.
Код нарушения:
function back(){
document.getElementById('back').className='back';
document.getElementById('one').className='cellcont';
//This should output the proper javascript, but does not
<?php
$a = fopen('c.txt','r');
if (!$a) {echo 'ERROR: Unable to open file.'; exit;}
$b = fgets($a);
echo "document.getElementById('i1').src='$b';";
fclose($a);
?>
}
Как это выводится:
function back(){
document.getElementById('back').className='back';
document.getElementById('one').className='cellcont';
document.getElementById('i1').src='00.jpg
';}
Как видите, завершающая кавычка и точка с запятой приходятся на следующую строку, и это ломает кнопку.
С файлами, которые я использую сейчас, я могу обойти эту проблему, изменив "fgets($a)" на "fgets($a, 7)", но мне нужно, чтобы он захватывал всю строку, чтобы, если клиент решает ввести файл с более длинным именем, он не ломает галерею на них.