public function testasArrayCSV() { $input = array('a', 'b', 'c', 'd' => 'four', 'e' => 5, 'f' => null, 'g' => false, 'h' => true, 'i' => ''); $result = Re::arrayCSV($input); $this->assertEquals($result, $input); $input = 'a,b,c,d,four,e,0,1,2,3,[NULL],asd;asd|asd"asd\'asd[asd]asd\\asd'; $expect = array('a', 'b', 'c', 'd', 'four', 'e', '0', '1', '2', '3', '[NULL]', 'asd;asd|asd"asd\'asd[asd]asd\\asd'); $result = Re::arrayCSV($input); $this->assertEquals($result, $expect); $expect = array('a', 'b', 'c', 'd', 'four', 'e', '0', '1', '2', '3', '[NULL]', 'asd', 'asd', 'asd"asd\'asd[asd]asd\\asd'); $result = Re::arrayCSV($input, ';,|'); $this->assertEquals($result, $expect); $expect = array('a', 'b', 'c', 'd', 'four', 'e', '0', '1', '2', '3', '[NULL]', 'asd', 'asd', 'asd', 'asd', 'asd[asd]asd', 'asd'); $result = Re::arrayCSV($input, ';,|,",\',\\'); $this->assertEquals($result, $expect); }
/** * just a simpler test function. Tests if something is !emtpy() || == '0' * @param mixed $data * @param array $settings * $settings[disallow] values to disallow (if empty, we default to our known "empties") * @return bool */ public static function isValid($data, $settings = array()) { extract(array_merge(array('disallow' => null), $settings)); if (is_array($data) && count($data) == 1) { $data = array_shift($data); } $disallowDefaults = array('0000-00-00', '0000-00-00 00:00:00', '', null, false); $disallow = array_merge($disallowDefaults, Re::arrayCSV($disallow), Re::$config['disallow']); if (is_array($data)) { $bads = array_intersect($disallow, $data); if (!empty($bads)) { return false; } } elseif (in_array($data, $disallow, true)) { return false; } if ($data === 0 || $data === '0') { // allow 0 unless explicitly disallowed // if disallowed, it would have already returned return true; } return !empty($data); }