PHP- trim() 函数无法正常工作

6

我在使用trim()函数时出现了问题,代码如下:

$handle = @fopen("55.txt", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {      
        $d = explode(" ", $buffer);
        foreach($d as $val) { 
            echo '<br>'.trim($val,'.');  //why not work 
        }   
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }   
    fclose($handle);
}

trim() 方法不能去除 '.'


8
好的,输入数据是什么?你尝试使用trim()去除末尾句号后面的空白字符吗?请展示55.txt文件的样本内容。 - Michael Berkowski
您重新评分的示例将从55.txt的内容开头和结尾删除“.”。 - SaidbakR
1
顺便说一下,欢迎来到 Stack Overflow。别担心 - 我们几乎总是会要求更多的信息,而且你的第一个问题至少是简明扼要的,并包含了代码。 - Michael Berkowski
2个回答

5

除了行本身外,fgets()函数还返回文件中的换行符,这些换行符在字符串中的点之后,因此防止点被修剪,因为它们实际上不是最后一个字符。

尝试同时修剪点和可能的换行符:

echo '<br>'.trim($val, ".\r\n");

谢谢你,但为什么要添加\r\n?你能带我去学习这个的网站或书籍吗? - user201635
这些是PHP字符串中的换行符,这里有更多关于它们的信息:http://www.go4expert.com/forums/showthread.php?t=8021 - Wolfgang Stengel

0

执行

substr(trim($val),1,stlen(trim($val)));

而不是

trim($val,'.');

如果你想要移除开头和结尾的'.'


3
我相信OP想要“删除”前导和尾随的“.”,而不是添加它们。 - Michael Berkowski
@user201635 这是您在寻找的吗? - itsme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接