私は、PHPの関数fgets '関数を使用して、フラットファイルデータベースから画像名を呼び出し、ギャラリーを作るしようとしています。ギャラリーにはそれぞれ異なるセクションがあり、それぞれに独自のデフォルトイメージがあり、ユーザーが選択できるイメージの小さなリストがあります。 1つのボタンを除いてすべてが正常に機能しています。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)"に変更することでこの問題を回避できますが、クライアントがより長い名前のファイルを入力することを決定した場合、そのファイル上のギャラリーを破壊することはありません。
、それは文字列なので、あなただけの文字列に空白(改行)文字を削除しようとしています。それについては、ここではたくさんの回答があります。 –