mirror of
https://github.com/retailcrm/PHPExcel.git
synced 2024-11-25 23:06:03 +03:00
Allow array definitions in test data files
git-svn-id: https://phpexcel.svn.codeplex.com/svn/trunk@85784 2327b42d-5241-43d6-9e2a-de5ac946f064
This commit is contained in:
parent
f0959c9ef3
commit
97ea12ef6d
@ -59,34 +59,54 @@ class testDataFileIterator implements Iterator
|
|||||||
// Split data into an array of individual values and a result
|
// Split data into an array of individual values and a result
|
||||||
$dataSet = explode(',',$testData);
|
$dataSet = explode(',',$testData);
|
||||||
foreach($dataSet as &$dataValue) {
|
foreach($dataSet as &$dataValue) {
|
||||||
// discard any white space
|
$dataValue = $this->_parseDataValue($dataValue);
|
||||||
$dataValue = trim($dataValue);
|
|
||||||
// test for the required datatype and convert accordingly
|
|
||||||
if (!is_numeric($dataValue)) {
|
|
||||||
if($dataValue == '') {
|
|
||||||
$dataValue = NULL;
|
|
||||||
} elseif($dataValue == '""') {
|
|
||||||
$dataValue = '';
|
|
||||||
} elseif(($dataValue[0] == '"') && ($dataValue[strlen($dataValue)-1] == '"')) {
|
|
||||||
$dataValue = substr($dataValue,1,-1);
|
|
||||||
} else {
|
|
||||||
switch (strtoupper($dataValue)) {
|
|
||||||
case 'NULL' : $dataValue = NULL; break;
|
|
||||||
case 'TRUE' : $dataValue = TRUE; break;
|
|
||||||
case 'FALSE' : $dataValue = FALSE; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (strpos($dataValue,'.') !== FALSE) {
|
|
||||||
$dataValue = (float) $dataValue;
|
|
||||||
} else {
|
|
||||||
$dataValue = (int) $dataValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
unset($dataValue);
|
unset($dataValue);
|
||||||
|
|
||||||
return $dataSet;
|
return $dataSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function _parseDataValue($dataValue) {
|
||||||
|
// discard any white space
|
||||||
|
$dataValue = trim($dataValue);
|
||||||
|
// test for the required datatype and convert accordingly
|
||||||
|
if (!is_numeric($dataValue)) {
|
||||||
|
if($dataValue == '') {
|
||||||
|
$dataValue = NULL;
|
||||||
|
} elseif($dataValue == '""') {
|
||||||
|
$dataValue = '';
|
||||||
|
} elseif(($dataValue[0] == '"') && ($dataValue[strlen($dataValue)-1] == '"')) {
|
||||||
|
$dataValue = substr($dataValue,1,-1);
|
||||||
|
} elseif(($dataValue[0] == '{') && ($dataValue[strlen($dataValue)-1] == '}')) {
|
||||||
|
$dataValue = explode(';',substr($dataValue,1,-1));
|
||||||
|
foreach($dataValue as &$dataRow) {
|
||||||
|
if (strpos($dataRow,'|') !== FALSE) {
|
||||||
|
$dataRow = explode('|',$dataRow);
|
||||||
|
foreach($dataRow as &$dataCell) {
|
||||||
|
$dataCell = $this->_parseDataValue($dataCell);
|
||||||
|
}
|
||||||
|
unset($dataCell);
|
||||||
|
} else {
|
||||||
|
$dataRow = $this->_parseDataValue($dataRow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset($dataRow);
|
||||||
|
} else {
|
||||||
|
switch (strtoupper($dataValue)) {
|
||||||
|
case 'NULL' : $dataValue = NULL; break;
|
||||||
|
case 'TRUE' : $dataValue = TRUE; break;
|
||||||
|
case 'FALSE' : $dataValue = FALSE; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (strpos($dataValue,'.') !== FALSE) {
|
||||||
|
$dataValue = (float) $dataValue;
|
||||||
|
} else {
|
||||||
|
$dataValue = (int) $dataValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $dataValue;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user