function process_file($file, array &$errors = array()) { if ($file['error'] != 0) { return "Er is een fout opgetreden bij het uploaden."; } $reader = new KnowledgeBaseReader(); $errors = $reader->lint($file['tmp_name']); $unique_name = sha1(microtime() . uniqid('kb', true)) . '.xml'; if (count($errors) > 0) { return false; } if (!move_uploaded_file($file['tmp_name'], '../knowledgebases/' . $unique_name)) { $errors[] = "De knowledge-base kon niet worden opgeslagen op de server."; return false; } return $unique_name; }
function process_file($file) { if ($file['error'] != 0) { return "Er is een fout opgetreden bij het uploaden."; } $reader = new KnowledgeBaseReader(); $errors = $reader->lint($file['tmp_name']); if (!preg_match('/^[a-zA-Z0-9_\\-\\.]+\\.xml$/i', $file['name'])) { return "De bestandsnaam bevat karakters die niet goed verwerkt kunnen worden."; } if (count($errors) > 0) { $out = "De volgende fouten zijn gevonden in de knowledge-base:\n<ul>"; foreach ($errors as $error) { $out .= sprintf("\n<li title=\"%s\">%s</li>\n", htmlspecialchars($error->file . ':' . $error->line, ENT_QUOTES, 'utf-8'), $error->message); } return $out .= "</ul>\n"; } if (!move_uploaded_file($file['tmp_name'], '../knowledgebases/' . $file['name'])) { return "De knowledge-base kon niet worden opgeslagen op de server."; } return "De knowlegde-base is opgeslagen :)"; }
<?php require '../util.php'; require '../solver.php'; require '../reader.php'; $reader = new KnowledgeBaseReader(); $out = $reader->lint('kb_empty.xml'); assert('count($out) === 0');