private static function analyze_url($url)
{
$result = array('url' => $url, 'absolute' => URLHelper::is_absolute($url), 'base' => 0, 'subdir' => '', 'filename' => '', 'extension' => '', 'basename' => '');
$upload_dir = wp_upload_dir();
$tmp = $url;
if (0 === strpos($tmp, ABSPATH)) {
// we've been given a dir, not an url
$result['absolute'] = true;
if (0 === strpos($tmp, $upload_dir['basedir'])) {
$result['base'] = self::BASE_UPLOADS;
// upload based
$tmp = str_replace($upload_dir['basedir'], '', $tmp);
}
if (0 === strpos($tmp, WP_CONTENT_DIR)) {
$result['base'] = self::BASE_CONTENT;
// content based
$tmp = str_replace(WP_CONTENT_DIR, '', $tmp);
}
} else {
if (!$result['absolute']) {
$tmp = site_url() . $tmp;
}
if (0 === strpos($tmp, $upload_dir['baseurl'])) {
$result['base'] = self::BASE_UPLOADS;
// upload based
$tmp = str_replace($upload_dir['baseurl'], '', $tmp);
}
if (0 === strpos($tmp, content_url())) {
$result['base'] = self::BASE_CONTENT;
// content-based
$tmp = str_replace(content_url(), '', $tmp);
}
}
$parts = pathinfo($tmp);
$result['subdir'] = $parts['dirname'] === '/' ? '' : $parts['dirname'];
$result['filename'] = $parts['filename'];
$result['extension'] = strtolower($parts['extension']);
$result['basename'] = $parts['basename'];
// todo filename
return $result;
}