private static function _process(&$img, $imglib) { foreach ($img as $image_id => $sizes) { if (!isset($imglib[$image_id]['storage']) || empty($imglib[$image_id]['storage'])) { continue; //未知引擎,无法处理 } if (file_exists(APP_DIR . '/base/lib/storage/' . $imglib[$image_id]['storage'] . '.php') || file_exists(EXTENDS_DIR . '/base/lib/storage/' . $imglib[$image_id]['storage'] . '.php')) { $storager_class = 'base_storage_' . $imglib[$image_id]['storage']; } else { $storager_class = false; } foreach ($sizes as $i => $item) { if ($item[0] && $storager_class) { /** * modifier_process is a static Method */ if (method_exists($storager_class, 'modifier_process')) { $url = $storager_class::modifier_process($imglib[$image_id]['url'], $item[0]); $the_url_plus = implode('_', array(substr($imglib[$image_id]['last_modified'], -5), 'OW' . $imglib[$image_id]['width'], 'OH' . $imglib[$image_id]['height'])); $the_url = $url && $url != '' ? $url . '?' . $the_url_plus : ''; $img[$image_id][$i][0] = $the_url; continue; } } switch ($item[0]) { case 'xs': $url = $imglib[$image_id]['xs_url'] ? $imglib[$image_id]['xs_url'] : $imglib[$image_id]['url']; break; case 's': $url = $imglib[$image_id]['s_url'] ? $imglib[$image_id]['s_url'] : $imglib[$image_id]['url']; break; case 'm': $url = $imglib[$image_id]['m_url'] ? $imglib[$image_id]['m_url'] : $imglib[$image_id]['url']; break; case 'l': $url = $imglib[$image_id]['l_url'] ? $imglib[$image_id]['l_url'] : $imglib[$image_id]['url']; break; default: $url = $imglib[$image_id]['url']; break; } if ($url && !strpos($url, '://') && substr($url, 0, 2) != '//') { $resource_host_url = vmc::get_resource_host_url(); $url = $resource_host_url . '/' . $url; } $the_url_plus = substr($imglib[$image_id]['last_modified'], -5) . '_H' . $imglib[$image_id]['height'] . '_W' . $imglib[$image_id]['width']; $the_url = $url && $url != '' ? $url . '?' . $the_url_plus : ''; $img[$image_id][$i][0] = $the_url; } } }