首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中消除fgets函数中的换行符?

如何在PHP中消除fgets函数中的换行符?
EN

Stack Overflow用户
提问于 2011-09-20 06:56:02
回答 3查看 18.6K关注 0票数 14

我正在尝试创建一个图库,它使用PHP 'fgets‘函数从平面文件数据库中调用图像名称。图库中有不同的部分,每个部分都有自己的默认图像,以及用户可以从中选择的一小部分图像。除了一个按钮之外,一切都很正常。

我在页面上有一个按钮,应该是重置所有的画廊,以他们的默认图像使用Javascript OnClick。它完全如我所愿地工作,但有一个小问题:它复制行尾的换行符与行上的字符保持一致,从而中断Javascript。

有问题的代码:

代码语言: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);
?>

}

它如何输出:

代码语言:javascript
复制
function back(){
document.getElementById('back').className='back';
document.getElementById('one').className='cellcont';
document.getElementById('i1').src='00.jpg
';}

正如您所看到的,结束引号和分号落在下一行,这打破了按钮。

对于我现在使用的文件,我可以通过将"fgets($a)“改为"fgets($a,7)”来解决这个问题,但我需要让它抓取整个行,这样如果客户端决定输入一个具有更长名称的文件,它就不会破坏它们上的图库。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-20 07:00:08

最好的方法是使用php trim()函数。请参阅http://php.net/manual/en/function.trim.php

代码语言:javascript
复制
$b = trim(fgets($a));
票数 28
EN

Stack Overflow用户

发布于 2011-09-20 07:01:44

使用rtrim()

具体地说:

代码语言:javascript
复制
rtrim($var, "\r\n");

(为了避免修剪其他字符,只需传入换行符。)

票数 32
EN

Stack Overflow用户

发布于 2011-09-20 07:00:09

代码语言:javascript
复制
$b = fgets($a);
$b = preg_replace("/[\n|\r]/",'',$b);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7478250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档