PHP可以在逐行阅读时排除换行符吗?

时间:2011-08-02 17:09:02

标签: php

我想逐行阅读,但我不想处理换行符,我希望将其删除,所以我最终只得到该行的内容。

现在我的功能是:

function getProductCount($path)
{
   $count = 0;

foreach (file($path) as $name) {
    if($name == "<product>\n")
    {
       $count = $count + 1;
    }
}
       return $count;
}

但理想情况下我想做:

function getProductCount($path)
{
   $count = 0;

foreach (file($path) as $name) {
    if($name == "<product>")
    {
       $count = $count + 1;
    }
}
       return $count;
}

有没有办法同时删除回车?

由于

5 个答案:

答案 0 :(得分:11)

http://www.php.net/manual/en/function.file.php

查看可以添加到函数调用的其他标志。你应该使用“FILE_IGNORE_NEW_LINES”

答案 1 :(得分:4)

您可以在每次循环迭代开始时在行上执行rtrim()

function getProductCount($path)
{
    $count = 0;

    foreach (file($path) as $raw_name) {
        $name = rtrim($raw_name);
        if($name == "<product>")
        {
            $count = $count + 1;
        }
    }
    return $count;
}

答案 2 :(得分:0)

使用trim()rtrim()(如果要保留字符串开头的空格)来去除空格。

答案 3 :(得分:-1)

您可能需要查看:http://php.net/trimhttp://php.net/str_replace(因此您可以用空字符替换eol)

答案 4 :(得分:-2)

正则表达式(在一行中取出\ n的最后一次出现并剥离它)或简单的$name = substr($name, 0, -2)都可以解决这个问题