我正在尝试创建一个图库,它使用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)”来解决这个问题,但我需要让它抓取整个行,这样如果客户端决定输入一个具有更长名称的文件,它就不会破坏它们上的图库。
发布于 2011-09-20 07:00:08
最好的方法是使用php trim()函数。请参阅http://php.net/manual/en/function.trim.php
$b = trim(fgets($a));发布于 2011-09-20 07:01:44
使用rtrim()。
具体地说:
rtrim($var, "\r\n");(为了避免修剪其他字符,只需传入换行符。)
发布于 2011-09-20 07:00:09
$b = fgets($a);
$b = preg_replace("/[\n|\r]/",'',$b);https://stackoverflow.com/questions/7478250
复制相似问题