$this->auto_non_chars didn't work the way I would have expected:

The "-" was taken literally, and thus 0 was forbidden, but 1 was allowed.

Fixes #55.
Also see #61
This commit is contained in:
Christian Bläul
2018-01-21 18:57:38 +01:00
committed by Fonata
parent 47f691ce33
commit b004911218
2 changed files with 18 additions and 3 deletions

View File

@@ -905,8 +905,8 @@ class parseCSV {
/**
* Validate a row against a single condition
*
* @param array $row array with values from a row
* @param string $condition specified condition that the row must match
* @param array $row array with values from a row
* @param string $condition specified condition that the row must match
*
* @return string single 0 or 1
*/
@@ -1181,7 +1181,12 @@ class parseCSV {
$enclosed = false;
$current_row = 1;
$to_end = true;
$pattern = '/[' . preg_quote($this->auto_non_chars, '/') . ']/i';
// The dash is the only character we don't want quoted, as it would
// prevent character ranges within $auto_non_chars:
$quoted_auto_non_chars = preg_quote($this->auto_non_chars, '/');
$quoted_auto_non_chars = str_replace('\-', '-', $quoted_auto_non_chars);
$pattern = '/[' . $quoted_auto_non_chars . ']/i';
// walk specific depth finding possible delimiter characters
for ($i = 0; $i < $strlen; $i++) {