Improve logic for identifying photos in csv-normaliser

This commit is contained in:
2024-09-23 23:06:18 +10:00
parent 45eba00d5d
commit fff24136a1

View File

@@ -96,19 +96,23 @@ if (($handle = fopen($inputFile, "r")) !== FALSE) {
//print("Adding candidate " . $candidateName . " to ". $currentWard . "\n");
$name_split = explode(" ", str_replace(",", "", str_replace("'", "_", $data[1])));
$name_split = array_values(array_filter(explode(" ", str_replace(",", "", str_replace("'", "_", $data[1]))), function($value) { return !is_null($value) && $value !== ''; }));
$name_patterns = [
implode(".*", $name_split),
implode(".*", array_reverse($name_split)),
".*" . implode(".*", $name_split) . ".*",
".*" . implode(".*", array_reverse($name_split)) . ".*",
"^" . $name_split[array_key_last($name_split)] . ".*",
"^" . $name_split[0] . ".*"
];
$regex_groups = array_map(function($x) { return "(?:.*" . $x . ".*)"; }, $name_patterns);
$regex_groups = array_map(function($x) { return "(?:" . $x . ")"; }, $name_patterns);
$regex_pattern = "/" . implode("|", $regex_groups) . "/i";
$picture = "";
foreach ($mediaFiles as $mediaFile) {
if ($mediaFile == ".") continue;
if ($mediaFile == "..") continue;
if (preg_match($regex_pattern, $mediaFile)) {
$picture = $mediaFile;
break;