I want to read line by line but I do not want to deal with newline, I want it to be removed so I only end up with the content of the line.
So right now my function is:
function getProductCount($path)
{
$count = 0;
foreach (file($path) as $name) {
if($name == "<product>\n")
{
$count = $count + 1;
}
}
return $count;
}
But ideally I would want to do:
function getProductCount($path)
{
$count = 0;
foreach (file($path) as $name) {
if($name == "<product>")
{
$count = $count + 1;
}
}
开发者_运维技巧 return $count;
}
Is there a way to also remove carriage returns too?
Thanks
http://www.php.net/manual/en/function.file.php
Look at the additional flags you can add to the function call. You should use "FILE_IGNORE_NEW_LINES"
You can perform rtrim()
on the line at the beginning of each loop iteration.
function getProductCount($path)
{
$count = 0;
foreach (file($path) as $raw_name) {
$name = rtrim($raw_name);
if($name == "<product>")
{
$count = $count + 1;
}
}
return $count;
}
Use trim()
or rtrim()
(if you want to preserve whitespaces in the beginning of the string) to strip whitespaces.
you might want to look at: http://php.net/trim and http://php.net/str_replace (so you can replace the eol by an empty character)
Either a regular expression (fetching the last occurence of \n in a line and stripping it) or simple $name = substr($name, 0, -2)
would do the trick
精彩评论