Slightly simplified getTotalDataRowCount, added test

The brackets () in the pattern were not needed, as only
$matches[0] was accessed, not $matches[1].

The @var is useful for PhpStorm's Php Inspections (EA Extended).
More details here: https://github.com/kalessil/phpinspectionsea/blob/master/docs/types-compatibility.md#foreach-source-to-iterate-over
This commit is contained in:
Fonata
2018-03-17 11:54:04 +01:00
parent ffed7ffdc0
commit 10895788c8
2 changed files with 9 additions and 2 deletions

View File

@@ -549,9 +549,10 @@ class Csv {
$this->_detect_and_remove_sep_row_from_data($data);
$pattern = sprintf('/(%1$s[^%1$s]*%1$s)/i', $this->enclosure);
$pattern = sprintf('/%1$s[^%1$s]*%1$s/i', $this->enclosure);
preg_match_all($pattern, $data, $matches);
/** @var array[] $matches */
foreach ($matches[0] as $match) {
if (empty($match) || (strpos($match, $this->enclosure) === false)) {
continue;

View File

@@ -64,7 +64,6 @@ class DataRowCountTest extends TestCase {
$this->assertEquals(3, $this->csv->getTotalDataRowCount());
}
public function testGetTotalRowCountSingleEnclosure() {
$this->csv->heading = false;
$this->csv->enclosure = "'";
@@ -73,4 +72,11 @@ class DataRowCountTest extends TestCase {
$this->assertEquals(3, $this->csv->getTotalDataRowCount());
}
public function testGetTotalRowCountSingleRow() {
$this->csv->heading = false;
$this->csv->enclosure = "'";
$sInput = "86545235689";
$this->csv->load_data($sInput);
$this->assertEquals(1, $this->csv->getTotalDataRowCount());
}
}