function csv_to_array($csv, $delimiter = ',', $enclosure = '\'', $escape = '\\', $terminator = "\n") { $r = array(); //$string = utf8_encode($csv); //echo mb_detect_encoding($names); //echo $csv; $rows = explode($terminator, trim($csv)); $names = array_shift($rows); $names = str_getcsv($names, $delimiter, $enclosure, $escape); $nc = count($names); foreach ($rows as $row) { if (trim($row)) { $values = str_getcsv($row, $delimiter, $enclosure, $escape); if (!$values) { $values = array_fill(0, $nc, null); } $tabTemp = array(); //array_combine($names,$values); foreach ($names as $key => $nameCol) { if (isset($values[$key])) { $value = $values[$key]; if (ToolsConvert::isTrueFloat($value)) { $value = floatval($value); } elseif (is_int($value)) { $value = intval($value); } $tabTemp[$nameCol] = $value; } else { $tabTemp[$nameCol] = NULL; } } $r[] = $tabTemp; } } return $r; }
static function relativeToExplicitURI($uri, $prefix) { $result = $uri; if (preg_match("/^(\"(?:\\\"|[^\"])*\"|'(?:\\'|[^'])*')(?:\\^\\^([^\\s]*))?\$/i", $uri, $matches)) { //<> if (isset($matches[2])) { $type = ParserTurtle::relativeToExplicitURI($matches[2], $prefix); $value = $matches[1]; if ($type == "http://www.w3.org/2001/XMLSchema#double" || $type == "http://www.w3.org/2001/XMLSchema#decimal") { $value = floatval($value); } elseif ($type == "http://www.w3.org/2001/XMLSchema#integer") { $value = intval($value); //}elseif($type == "http://www.w3.org/2001/XMLSchema#boolean"){ // $value = $value === "true" ? true : false; } $result = "\"" . $value . "\"^^" . $type; } else { $value = $matches[1]; if (ToolsConvert::isTrueFloat($value)) { $value = floatval($value); } elseif (is_int($value)) { $value = intval($value); } $result = $value; } } elseif (preg_match("/^<>\$/i", $uri, $matches)) { //<> $result = "<" . $prefix["base"] . ">"; } elseif (preg_match("/^<#([^:]+)>\$/i", $uri, $matches)) { //<#truc> $result = "<" . $prefix["base"] . $matches[1] . ">"; } elseif (preg_match("/^<([^:]+)>\$/i", $uri, $matches)) { //<truc> $len = strlen($prefix["base"]); $prefixbase = substr($prefix["base"], 0, strrpos($prefix["base"], "/")); $result = "<" . $prefixbase . $matches[1] . ">"; } elseif (preg_match("/^:([^\\s]*)\$/i", $uri, $matches)) { //:truc $result = "<" . $prefix["empty"] . $matches[1] . ">"; } elseif (preg_match("/^([^:_]*):([^><]*)\$/i", $uri, $matches)) { //x:truc $result = "<" . $prefix[$matches[1]] . $matches[2] . ">"; } else { $value = $uri; if (ToolsConvert::isTrueFloat($value)) { $value = floatval($value); } elseif (is_int($value)) { $value = intval($value); } $result = $value; } return $result; }