我正在尝试创建一个使用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));