Как устранить разрыв строки из функции fgets в PHP?

Я пытаюсь создать галерею, которая вызывает имена изображений из плоской базы данных файлов, используя функцию 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)», но мне нужно, чтобы он захватил всю строку, чтобы, если клиент решает ввести файл с более длинным именем, он не разбивает галерею на них.

Лучше всего использовать функцию php trim (). См. http://php.net/manual/en/function.trim.php

 $b = trim(fgets($a)); 

Используйте rtrim() .

В частности:

 rtrim($var, "\r\n"); 

(Чтобы запросить обрезку других символов, перейдите в новую строку.)

 $b = fgets($a); $b = preg_replace("/[\n|\r]/",'',$b);