I have a csv which includes a column allowing a multi-line string.
sku,name,description
123,"Product Name Here","Multi-line description
goes here.
Lots of multi-line content"
I am interested in counting the number of rows I have in my CSV. I have tried
$num_rows = count(file($filename));
var_dump($num_rows); //4 < WHAY too high
but this counts each line in the multi-line cell as well.
To get the actual number of lines I am currently using:
//get number of rows
$num_rows = 0;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num_rows++;
}
var_dump($num_rows); //2 < The actual number of rows
I then do another while
loop to process the CSV.
Is there a way to get the number of rows in a CSV without using the above while loop?
CSV
Here is a sample CSV. The number of lines I am looking for is 3
not 28
sku, name, description
123, "Product name", "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Mauris pretium enim facilisis, tincidunt elit id, congue est.</p>
<p>Donec eu eros quis elit mattis dapibus.</p>
<p>Sed euismod augue nec metus accumsan, et ultricies elit mattis.</p>
<p>Vestibulum aliquet est sit amet neque congue lacinia.<br/>
Donec viverra augue quis orci interdum mattis.<br/>
Phasellus ullamcorper risus quis dolor tempus sagittis.</p>
<p>Integer vel augue iaculis turpis vestibulum commodo eu quis nunc.</p>"
456, "Another Product name", "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Mauris pretium enim facilisis, tincidunt elit id, congue est.</p>
<p>Donec eu eros quis elit mattis dapibus.</p>
<p>Sed euismod augue nec metus accumsan, et ultricies elit mattis.</p>
<p>Vestibulum aliquet est sit amet neque congue lacinia.<br/>
Donec viverra augue quis orci interdum mattis.<br/>
Phasellus ullamcorper risus quis dolor tempus sagittis.</p>
<p>Integer vel augue iaculis turpis vestibulum commodo eu quis nunc.</p>"