本文整理汇总了PHP中ewww_image_optimizer_stl_check函数的典型用法代码示例。如果您正苦于以下问题:PHP ewww_image_optimizer_stl_check函数的具体用法?PHP ewww_image_optimizer_stl_check怎么用?PHP ewww_image_optimizer_stl_check使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ewww_image_optimizer_stl_check函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: ewww_image_optimizer
//.........这里部分代码省略.........
// if the user has disabled the utility checks
if (ewww_image_optimizer_get_option('ewww_image_optimizer_skip_check') == TRUE || EWWW_IMAGE_OPTIMIZER_CLOUD) {
$skip_jpegtran_check = true;
$skip_optipng_check = true;
$skip_gifsicle_check = true;
$skip_pngout_check = true;
} else {
// otherwise we set the variables to false
$skip_jpegtran_check = false;
$skip_optipng_check = false;
$skip_gifsicle_check = false;
$skip_pngout_check = false;
}
if (ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_jpg')) {
$skip_jpegtran_check = true;
}
if (ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_png')) {
$skip_optipng_check = true;
$skip_pngout_check = true;
}
if (ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_gif')) {
$skip_gifsicle_check = true;
}
if (ewww_image_optimizer_get_option('ewww_image_optimizer_metadata_skip_full') && $fullsize) {
$keep_metadata = true;
} else {
$keep_metadata = false;
}
if (ewww_image_optimizer_get_option('ewww_image_optimizer_lossy_skip_full') && $fullsize) {
$skip_lossy = true;
} else {
$skip_lossy = false;
}
if (ini_get('max_execution_time') < 90 && ewww_image_optimizer_stl_check()) {
set_time_limit(0);
}
// if the full-size image was converted
if ($converted) {
$ewww_debug .= "full-size image was converted, need to rebuild filename for meta<br>";
$filenum = $converted;
// grab the file extension
preg_match('/\\.\\w+$/', $file, $fileext);
// strip the file extension
$filename = str_replace($fileext[0], '', $file);
// grab the dimensions
preg_match('/-\\d+x\\d+(-\\d+)*$/', $filename, $fileresize);
// strip the dimensions
$filename = str_replace($fileresize[0], '', $filename);
// reconstruct the filename with the same increment (stored in $converted) as the full version
$refile = $filename . '-' . $filenum . $fileresize[0] . $fileext[0];
// rename the file
rename($file, $refile);
$ewww_debug .= "moved {$file} to {$refile}<br>";
// and set $file to the new filename
$file = $refile;
$original = $file;
}
// get the original image size
$orig_size = filesize($file);
$ewww_debug .= "original filesize: {$orig_size}<br>";
if ($orig_size < ewww_image_optimizer_get_option('ewww_image_optimizer_skip_size')) {
// tell the user optimization was skipped
$msg = __("Optimization skipped", EWWW_IMAGE_OPTIMIZER_DOMAIN);
$ewww_debug .= "optimization bypassed due to filesize: {$file} <br>";
// send back the above message
return array(false, $msg, $converted, $file);
示例2: ewww_image_optimizer_count_optimized
function ewww_image_optimizer_count_optimized($gallery, $return_ids = false)
{
global $ewww_debug;
global $wpdb;
$ewww_debug .= "<b>ewww_image_optimizer_count_optmized()</b><br>";
$full_count = 0;
$unoptimized_full = 0;
$unoptimized_re = 0;
$resize_count = 0;
$attachment_query = '';
$ewww_debug .= "scanning for {$gallery}<br>";
// retrieve the time when the optimizer starts
$started = microtime(true);
if (ewww_image_optimizer_stl_check()) {
set_time_limit(0);
}
$max_query = 3000;
$attachment_query_count = 0;
switch ($gallery) {
case 'media':
$ids = array();
// see if we were given attachment IDs to work with via GET/POST
if (!empty($_REQUEST['ids']) || get_option('ewww_image_optimizer_bulk_resume')) {
$ewww_debug .= 'we have preloaded attachment ids<br>';
// retrieve the attachment IDs that were pre-loaded in the database
$attachment_ids = get_option('ewww_image_optimizer_bulk_attachments');
while ($attachment_ids && $attachment_query_count < $max_query) {
$attachment_query .= "'" . array_pop($attachment_ids) . "',";
$attachment_query_count++;
}
$attachment_query = 'AND metas.post_id IN (' . substr($attachment_query, 0, -1) . ')';
}
$offset = 0;
// retrieve all the image attachment metadata from the database
while ($attachments = $wpdb->get_results("SELECT metas.meta_value,post_id FROM {$wpdb->postmeta} metas INNER JOIN {$wpdb->posts} posts ON posts.ID = metas.post_id WHERE posts.post_mime_type LIKE '%image%' AND metas.meta_key = '_wp_attachment_metadata' {$attachment_query} LIMIT {$offset}, {$max_query}", ARRAY_N)) {
$ewww_debug .= "fetched " . count($attachments) . " attachments starting at {$offset}<br>";
$disabled_sizes = ewww_image_optimizer_get_option('ewww_image_optimizer_disable_resizes');
foreach ($attachments as $attachment) {
$meta = unserialize($attachment[0]);
if (empty($meta)) {
continue;
}
if (empty($meta['ewww_image_optimizer'])) {
$unoptimized_full++;
$ids[] = $attachment[1];
}
// resized versions, so we can continue
if (isset($meta['sizes'])) {
foreach ($meta['sizes'] as $size => $data) {
if (!empty($disabled_sizes[$size])) {
continue;
}
$resize_count++;
if (empty($meta['sizes'][$size]['ewww_image_optimizer'])) {
$unoptimized_re++;
}
}
}
}
$full_count += count($attachments);
$offset += $max_query;
if (!empty($attachment_ids)) {
$attachment_query = '';
$attachment_query_count = 0;
$offset = 0;
while ($attachment_ids && $attachment_query_count < $max_query) {
$attachment_query .= "'" . array_pop($attachment_ids) . "',";
$attachment_query_count++;
}
$attachment_query = 'AND metas.post_id IN (' . substr($attachment_query, 0, -1) . ')';
}
}
break;
case 'ngg':
// see if we were given attachment IDs to work with via GET/POST
if (!empty($_REQUEST['ewww_inline']) || get_option('ewww_image_optimizer_bulk_ngg_resume')) {
// retrieve the attachment IDs that were pre-loaded in the database
$attachment_ids = get_option('ewww_image_optimizer_bulk_ngg_attachments');
while ($attachment_ids && $attachment_query_count < $max_query) {
$attachment_query .= "'" . array_pop($attachment_ids) . "',";
$attachment_query_count++;
}
$attachment_query = 'WHERE pid IN (' . substr($attachment_query, 0, -1) . ')';
}
// creating the 'registry' object for working with nextgen
$registry = C_Component_Registry::get_instance();
// creating a database storage object from the 'registry' object
$storage = $registry->get_utility('I_Gallery_Storage');
// get an array of sizes available for the $image
$sizes = $storage->get_image_sizes();
$offset = 0;
while ($attachments = $wpdb->get_col("SELECT meta_data FROM {$wpdb->nggpictures} {$attachment_query} LIMIT {$offset}, {$max_query}")) {
foreach ($attachments as $attachment) {
if (class_exists('Ngg_Serializable')) {
$serializer = new Ngg_Serializable();
$meta = $serializer->unserialize($attachment);
} else {
$meta = unserialize($attachment);
}
if (!is_array($meta)) {
//.........这里部分代码省略.........
示例3: ewww_image_optimizer_image_scan
function ewww_image_optimizer_image_scan($dir)
{
ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>');
global $wpdb;
$images = array();
if (!is_dir($dir)) {
return $images;
}
ewwwio_debug_message("scanning folder for images: {$dir}");
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::CHILD_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD);
$start = microtime(true);
$query = "SELECT path,image_size FROM {$wpdb->ewwwio_images}";
$already_optimized = $wpdb->get_results($query, ARRAY_A);
$optimized_list = array();
foreach ($already_optimized as $optimized) {
$optimized_path = $optimized['path'];
$optimized_list[$optimized_path] = $optimized['image_size'];
}
$file_counter = 0;
if (ewww_image_optimizer_stl_check()) {
set_time_limit(0);
}
foreach ($iterator as $file) {
$file_counter++;
$skip_optimized = false;
if ($file->isFile()) {
$path = $file->getPathname();
if (preg_match('/(\\/|\\\\)\\./', $path) && apply_filters('ewww_image_optimizer_ignore_hidden_files', true)) {
continue;
}
if (!ewww_image_optimizer_quick_mimetype($path)) {
/* $pathextension = strtolower( pathinfo( $path, PATHINFO_EXTENSION ) );
switch ( $pathextension ) {
case 'jpg':
case 'jpeg':
case 'jpe':
case 'png':
case 'gif':
case 'pdf':
break;
default:*/
continue;
}
if (isset($optimized_list[$path])) {
$image_size = $file->getSize();
if ($optimized_list[$path] == $image_size) {
ewwwio_debug_message("match found for {$path}");
$skip_optimized = true;
} else {
ewwwio_debug_message("mismatch found for {$path}, db says " . $optimized_list[$path] . " vs. current {$image_size}");
}
}
if (empty($skip_optimized) || !empty($_REQUEST['ewww_force'])) {
ewwwio_debug_message("queued {$path}");
$images[] = utf8_encode($path);
}
}
// ewww_image_optimizer_debug_log();
}
$end = microtime(true) - $start;
ewwwio_debug_message("query time for {$file_counter} files (seconds): {$end}");
ewwwio_memory(__FUNCTION__);
return $images;
}
示例4: ewww_image_optimizer_bulk_loop
function ewww_image_optimizer_bulk_loop()
{
ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>');
global $ewww_defer;
$ewww_defer = false;
$output = array();
// verify that an authorized user has started the optimizer
$permissions = apply_filters('ewww_image_optimizer_bulk_permissions', '');
if (!wp_verify_nonce($_REQUEST['ewww_wpnonce'], 'ewww-image-optimizer-bulk') || !current_user_can($permissions)) {
$output['error'] = esc_html__('Access token has expired, please reload the page.', EWWW_IMAGE_OPTIMIZER_DOMAIN);
echo json_encode($output);
die;
}
session_write_close();
// retrieve the time when the optimizer starts
$started = microtime(true);
if (ewww_image_optimizer_stl_check() && ini_get('max_execution_time')) {
set_time_limit(0);
}
// find out if our nonce is on it's last leg/tick
$tick = wp_verify_nonce($_REQUEST['ewww_wpnonce'], 'ewww-image-optimizer-bulk');
if ($tick === 2) {
$output['new_nonce'] = wp_create_nonce('ewww-image-optimizer-bulk');
} else {
$output['new_nonce'] = '';
}
// get the 'bulk attachments' with a list of IDs remaining
$attachments = get_option('ewww_image_optimizer_bulk_attachments');
$attachment = array_shift($attachments);
$meta = wp_get_attachment_metadata($attachment, true);
// do the optimization for the current attachment (including resizes)
$meta = ewww_image_optimizer_resize_from_meta_data($meta, $attachment, false);
$ewww_status = get_transient('ewww_image_optimizer_cloud_status');
if (!empty($ewww_status) && preg_match('/exceeded/', $ewww_status)) {
$output['error'] = esc_html__('License Exceeded', EWWW_IMAGE_OPTIMIZER_DOMAIN);
echo json_encode($output);
die;
}
if (!empty($meta['file'])) {
// output the filename (and path relative to 'uploads' folder)
$output['results'] = sprintf("<p>" . esc_html__('Optimized', EWWW_IMAGE_OPTIMIZER_DOMAIN) . " <strong>%s</strong><br>", esc_html($meta['file']));
} else {
$output['results'] = sprintf("<p>" . esc_html__('Skipped image, ID:', EWWW_IMAGE_OPTIMIZER_DOMAIN) . " <strong>%s</strong><br>", esc_html($attachment));
}
if (!empty($meta['ewww_image_optimizer'])) {
// tell the user what the results were for the original image
$output['results'] .= sprintf(esc_html__('Full size – %s', EWWW_IMAGE_OPTIMIZER_DOMAIN) . "<br>", esc_html($meta['ewww_image_optimizer']));
}
// check to see if there are resized version of the image
if (isset($meta['sizes']) && is_array($meta['sizes'])) {
// cycle through each resize
foreach ($meta['sizes'] as $size) {
if (!empty($size['ewww_image_optimizer'])) {
// output the results for the current resized version
$output['results'] .= sprintf("%s – %s<br>", esc_html($size['file']), esc_html($size['ewww_image_optimizer']));
}
}
}
// calculate how much time has elapsed since we started
$elapsed = microtime(true) - $started;
// output how much time has elapsed since we started
$output['results'] .= sprintf(esc_html__('Elapsed: %.3f seconds', EWWW_IMAGE_OPTIMIZER_DOMAIN) . "</p>", $elapsed);
global $ewww_attachment;
$ewww_attachment['id'] = $attachment;
$ewww_attachment['meta'] = $meta;
add_filter('w3tc_cdn_update_attachment_metadata', 'ewww_image_optimizer_w3tc_update_files');
// update the metadata for the current attachment
wp_update_attachment_metadata($attachment, $meta);
// store the updated list of attachment IDs back in the 'bulk_attachments' option
update_option('ewww_image_optimizer_bulk_attachments', $attachments);
if (ewww_image_optimizer_get_option('ewww_image_optimizer_debug')) {
global $ewww_debug;
$output['results'] .= '<div style="background-color:#ffff99;">' . $ewww_debug . '</div>';
}
if (!empty($attachments)) {
$next_attachment = array_shift($attachments);
$next_file = ewww_image_optimizer_bulk_filename($next_attachment);
// generate the WP spinner image for display
$loading_image = plugins_url('/images/wpspin.gif', __FILE__);
if ($next_file) {
$output['next_file'] = "<p>" . esc_html__('Optimizing', EWWW_IMAGE_OPTIMIZER_DOMAIN) . " <b>{$next_file}</b> <img src='{$loading_image}' /></p>";
} else {
$output['next_file'] = "<p>" . esc_html__('Optimizing', EWWW_IMAGE_OPTIMIZER_DOMAIN) . " <img src='{$loading_image}' /></p>";
}
}
echo json_encode($output);
ewww_image_optimizer_debug_log();
ewwwio_memory(__FUNCTION__);
die;
}
示例5: ewww_image_optimizer_image_scan
function ewww_image_optimizer_image_scan($dir)
{
global $ewww_debug;
global $wpdb;
$ewww_debug .= "<b>ewww_image_optimizer_image_scan()</b><br>";
$images = array();
if (!is_dir($dir)) {
return $images;
}
$ewww_debug .= "scanning folder for images: {$dir}<br>";
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::CHILD_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD);
$start = microtime(true);
$query = "SELECT path,image_size FROM {$wpdb->ewwwio_images}";
$already_optimized = $wpdb->get_results($query, ARRAY_A);
$file_counter = 0;
if (ewww_image_optimizer_stl_check()) {
set_time_limit(0);
}
foreach ($iterator as $path) {
$file_counter++;
$skip_optimized = false;
if ($path->isFile()) {
// continue;
//} else {
$path = $path->getPathname();
if (preg_match('/\\.(po|mo|pot|php|txt|js|css|html|woff|webp|json|svg|xml|ttf|otf|eot|md)$/', $path)) {
$ewww_debug .= "not a usable extension: {$path}<br>";
continue;
}
$mimetype = ewww_image_optimizer_mimetype($path, 'i');
if (empty($mimetype) || !preg_match('/^image\\/(jpeg|png|gif)/', $mimetype)) {
$ewww_debug .= "not a usable mimetype: {$path}<br>";
continue;
}
foreach ($already_optimized as $optimized) {
if ($optimized['path'] === $path) {
$image_size = filesize($path);
if ($optimized['image_size'] == $image_size) {
$ewww_debug .= "match found for {$path}<br>";
$skip_optimized = true;
break;
} else {
$ewww_debug .= "mismatch found for {$path}, db says " . $optimized['image_size'] . " vs. current {$image_size}<br>";
}
}
}
if (empty($skip_optimized) || !empty($_REQUEST['ewww_force'])) {
$ewww_debug .= "queued {$path}<br>";
$images[] = $path;
}
}
}
$end = microtime(true) - $start;
$ewww_debug .= "query time for {$file_counter} files (seconds): {$end} <br>";
ewwwio_memory(__FUNCTION__);
return $images;
}
示例6: ewww_image_optimizer_image_scan
function ewww_image_optimizer_image_scan($dir)
{
ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>');
global $wpdb;
$images = array();
if (!is_dir($dir)) {
return $images;
}
ewwwio_debug_message("scanning folder for images: {$dir}");
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::CHILD_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD);
$start = microtime(true);
$query = "SELECT path,image_size FROM {$wpdb->ewwwio_images}";
$already_optimized = $wpdb->get_results($query, ARRAY_A);
$optimized_list = array();
foreach ($already_optimized as $optimized) {
$optimized_path = $optimized['path'];
$optimized_list[$optimized_path] = $optimized['image_size'];
}
$file_counter = 0;
if (ewww_image_optimizer_stl_check()) {
set_time_limit(0);
}
foreach ($iterator as $file) {
$file_counter++;
$skip_optimized = false;
if ($file->isFile()) {
$path = $file->getPathname();
if (preg_match('/(\\/|\\\\)\\./', $path) && apply_filters('ewww_image_optimizer_ignore_hidden_files', true)) {
// ewwwio_debug_message( "skipping hidden file: $path" );
continue;
}
if (preg_match('/\\.(conf|crt|css|docx|eot|exe|git|gitignore|gitmodules|gz|hgignore|hgsub|hgsubstate|hgtags|htaccess|htm|html|ico|ini|js|json|key|less|lock|log|map|md|mo|mp3|mp4|otf|pdf|pem|php|po|pot|sample|scss|sh|svg|svnignore|swf|template|tiff|tmp|tpl|ttf|txt|url|vcl|woff|woff2|webp|xap|xml|yml|zip)$/', $path)) {
// ewwwio_debug_message( "not a usable extension: $path" );
continue;
}
if (!preg_match('/\\./', $path)) {
// ewwwio_debug_message( "no extension: $path" );
continue;
}
if (isset($optimized_list[$path])) {
$image_size = $file->getSize();
if ($optimized_list[$path] == $image_size) {
ewwwio_debug_message("match found for {$path}");
$skip_optimized = true;
} else {
ewwwio_debug_message("mismatch found for {$path}, db says " . $optimized_list[$path] . " vs. current {$image_size}");
}
}
if (empty($skip_optimized) || !empty($_REQUEST['ewww_force'])) {
ewwwio_debug_message("queued {$path}");
$images[] = $path;
}
}
}
$end = microtime(true) - $start;
ewwwio_debug_message("query time for {$file_counter} files (seconds): {$end}");
ewwwio_memory(__FUNCTION__);
return $images;
}
示例7: ewww_image_optimizer_aux_images_loop
function ewww_image_optimizer_aux_images_loop($attachment = null, $auto = false)
{
ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>');
global $ewww_defer;
$ewww_defer = false;
$output = array();
// verify that an authorized user has started the optimizer
$permissions = apply_filters('ewww_image_optimizer_bulk_permissions', '');
if (!$auto && (empty($_REQUEST['ewww_wpnonce']) || !wp_verify_nonce($_REQUEST['ewww_wpnonce'], 'ewww-image-optimizer-bulk') || !current_user_can($permissions))) {
$output['error'] = esc_html__('Access token has expired, please reload the page.', EWWW_IMAGE_OPTIMIZER_DOMAIN);
echo json_encode($output);
die;
}
session_write_close();
if (!empty($_REQUEST['ewww_wpnonce'])) {
// find out if our nonce is on it's last leg/tick
$tick = wp_verify_nonce($_REQUEST['ewww_wpnonce'], 'ewww-image-optimizer-bulk');
if ($tick === 2) {
ewwwio_debug_message('nonce on its last leg');
$output['new_nonce'] = wp_create_nonce('ewww-image-optimizer-bulk');
} else {
ewwwio_debug_message('nonce still alive and kicking');
$output['new_nonce'] = '';
}
}
// retrieve the time when the optimizer starts
$started = microtime(true);
if (ewww_image_optimizer_stl_check() && ini_get('max_execution_time') < 60) {
set_time_limit(0);
}
// get the 'aux attachments' with a list of attachments remaining
$attachments = get_option('ewww_image_optimizer_aux_attachments');
if (empty($attachment)) {
$attachment = array_shift($attachments);
}
// do the optimization for the current image
$results = ewww_image_optimizer($attachment);
//global $ewww_exceed;
$ewww_status = get_transient('ewww_image_optimizer_cloud_status');
if (!empty($ewww_status) && preg_match('/exceeded/', $ewww_status)) {
if (!$auto) {
$output['error'] = esc_html__('License Exceeded', EWWW_IMAGE_OPTIMIZER_DOMAIN);
echo json_encode($output);
}
die;
}
// store the updated list of attachment IDs back in the 'bulk_attachments' option
update_option('ewww_image_optimizer_aux_attachments', $attachments);
if (!$auto) {
// output the path
$output['results'] = sprintf("<p>" . esc_html__('Optimized', EWWW_IMAGE_OPTIMIZER_DOMAIN) . " <strong>%s</strong><br>", esc_html($attachment));
// tell the user what the results were for the original image
$output['results'] .= sprintf("%s<br>", $results[1]);
// calculate how much time has elapsed since we started
$elapsed = microtime(true) - $started;
// output how much time has elapsed since we started
$output['results'] .= sprintf(esc_html__('Elapsed: %.3f seconds', EWWW_IMAGE_OPTIMIZER_DOMAIN) . "</p>", $elapsed);
if (get_site_option('ewww_image_optimizer_debug')) {
global $ewww_debug;
$output['results'] .= '<div style="background-color:#ffff99;">' . $ewww_debug . '</div>';
}
if (!empty($attachments)) {
$next_file = array_shift($attachments);
$loading_image = plugins_url('/images/wpspin.gif', __FILE__);
$output['next_file'] = "<p>" . esc_html__('Optimizing', EWWW_IMAGE_OPTIMIZER_DOMAIN) . " <b>{$next_file}</b> <img src='{$loading_image}' alt='loading'/></p>";
}
echo json_encode($output);
ewwwio_memory(__FUNCTION__);
die;
}
ewwwio_memory(__FUNCTION__);
}
示例8: ewww_image_optimizer_webp_loop
function ewww_image_optimizer_webp_loop()
{
ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>');
$permissions = apply_filters('ewww_image_optimizer_admin_permissions', '');
if (!wp_verify_nonce($_REQUEST['ewww_wpnonce'], 'ewww-image-optimizer-webp') || !current_user_can($permissions)) {
wp_die(esc_html__('Access token has expired, please reload the page.', EWWW_IMAGE_OPTIMIZER_DOMAIN));
}
// retrieve the time when the migration starts
$started = microtime(true);
if (ewww_image_optimizer_stl_check()) {
set_time_limit(0);
}
$images = array();
ewwwio_debug_message('renaming images now');
$images_processed = 0;
$images_skipped = '';
$images = get_option('ewww_image_optimizer_webp_images');
if ($images) {
printf(esc_html__('%d Webp images left to rename.', EWWW_IMAGE_OPTIMIZER_DOMAIN), count($images));
echo "<br>";
}
while ($images) {
$images_processed++;
ewwwio_debug_message("processed {$images_processed} images so far");
if ($images_processed > 1000) {
ewwwio_debug_message('hit 1000, breaking loop');
break;
}
$image = array_pop($images);
$replace_base = '';
$skip = true;
$pngfile = preg_replace('/webp$/', 'png', $image);
$PNGfile = preg_replace('/webp$/', 'PNG', $image);
$jpgfile = preg_replace('/webp$/', 'jpg', $image);
$jpegfile = preg_replace('/webp$/', 'jpeg', $image);
$JPGfile = preg_replace('/webp$/', 'JPG', $image);
if (file_exists($pngfile)) {
$replace_base = $pngfile;
$skip = false;
}
if (file_exists($PNGfile)) {
if (empty($replace_base)) {
$replace_base = $PNGfile;
$skip = false;
} else {
$skip = true;
}
}
if (file_exists($jpgfile)) {
if (empty($replace_base)) {
$replace_base = $jpgfile;
$skip = false;
} else {
$skip = true;
}
}
if (file_exists($jpegfile)) {
if (empty($replace_base)) {
$replace_base = $jpegfile;
$skip = false;
} else {
$skip = true;
}
}
if (file_exists($JPGfile)) {
if (empty($replace_base)) {
$replace_base = $JPGfile;
$skip = false;
} else {
$skip = true;
}
}
if ($skip) {
if ($replace_base) {
ewwwio_debug_message("multiple replacement options for {$image}, not renaming");
} else {
ewwwio_debug_message("no match found for {$image}, strange...");
}
$images_skipped .= "{$image}<br>";
} else {
ewwwio_debug_message("renaming {$image} with match of {$replace_base}");
rename($image, $replace_base . '.webp');
}
}
if ($images_skipped) {
update_option('ewww_image_optimizer_webp_skipped', get_option('ewww_image_optimizer_webp_skipped') . $images_skipped);
}
// calculate how much time has elapsed since we started
$elapsed = microtime(true) - $started;
ewwwio_debug_message("took {$elapsed} seconds this time around");
// store the updated list of images back in the database
update_option('ewww_image_optimizer_webp_images', $images);
ewww_image_optimizer_debug_log();
die;
}