<?php
// Simulate CI _prep_filename

function _prep_filename($filename, $allowed_types = ['jpg', 'pdf', 'jpeg']) {
    if (strpos($filename, '.') === FALSE) {
        return $filename;
    }

    $parts = explode('.', $filename);
    $ext = array_pop($parts);
    $filename = array_shift($parts);

    foreach ($parts as $part) {
        if (!in_array(strtolower($part), $allowed_types)) {
            $filename .= '.'.$part.'_';
        } else {
            $filename .= '.'.$part;
        }
    }

    $filename .= '.'.$ext;
    return $filename;
}

$test_names = [
    '1-test.php',
    '1-test.jpg',
    '1-test.',       // Empty extension
    '1-test..',      // Double dot
    '1-test',        // No extension
    '1-test.php.jpg',
    '1-test..jpg',
];

foreach ($test_names as $name) {
    echo "$name => " . _prep_filename($name) . "\n";
}
