Plugin Directory

Changeset 2241379


Ignore:
Timestamp:
02/09/2020 05:30:24 PM (6 years ago)
Author:
pagecdn
Message:

Bug fixes related to webp support.

Location:
pagecdn/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • pagecdn/trunk/admin-functions.php

    r2241353 r2241379  
    131131        #   Deleting files internally triggers a purge operation
    132132       
    133         file_put_contents( PAGECDN_CACHE , json_encode( array() ) );
     133        $empty_file = json_encode( array() );
     134       
     135        file_put_contents( PAGECDN_CACHE , $empty_file );
     136       
     137        file_put_contents( PAGECDN_IMG_CACHE , $empty_file );
     138       
     139        file_put_contents( PAGECDN_WEBP_CACHE , $empty_file );
     140       
    134141       
    135142        $args           = array();
  • pagecdn/trunk/functions.php

    r2241353 r2241379  
    9898    function PageCDN_cache_known_URLs( )
    9999    {
    100         Global $known_URLs;
    101         Global $discovered_new_URLs;
    102        
    103         if( $discovered_new_URLs )
    104         {
    105             @file_put_contents( PAGECDN_CACHE , json_encode( $known_URLs ) );
     100        Global $PageCDN_known_URLs;
     101        Global $PageCDN_known_img_URLs;
     102        Global $PageCDN_known_webp_URLs;
     103        Global $PageCDN_discovered_new_URLs;
     104       
     105        if( $PageCDN_discovered_new_URLs )
     106        {
     107            @file_put_contents( PAGECDN_CACHE , json_encode( $PageCDN_known_URLs ) );
     108           
     109            @file_put_contents( PAGECDN_IMG_CACHE , json_encode( $PageCDN_known_img_URLs ) );
     110           
     111            @file_put_contents( PAGECDN_WEBP_CACHE , json_encode( $PageCDN_known_webp_URLs ) );
    106112        }
    107113    }
     
    156162    function PageCDN_rewriter_rewrite( $html )
    157163    {
    158         Global $known_URLs;
     164        Global $PageCDN_known_URLs;
    159165        //Global $PageCDN_origin_scheme;
    160166        //Global $PageCDN_origin_host;
    161167        //Global $PageCDN_normalized_origin_host;
    162168       
     169        Global $PageCDN_known_img_URLs;
     170        Global $PageCDN_known_webp_URLs;
     171        Global $PageCDN_webp_support;
     172       
    163173        #   Replace known URLs.
    164         $html       = strtr( $html , $known_URLs );
     174        $html   = strtr( $html , $PageCDN_known_URLs );
     175       
     176        if( $PageCDN_webp_support )
     177        {
     178            $html   = strtr( $html , $PageCDN_known_webp_URLs );
     179        }
     180        else
     181        {
     182            $html   = strtr( $html , $PageCDN_known_img_URLs );
     183        }
     184       
    165185       
    166186        #   Discover new URLs.
     
    216236        $html   = preg_replace_callback( $regex_site , 'PageCDN_rewriter_rewrite_url' , $html );
    217237       
    218         //$html = $html; . '<!--' . json_encode( $known_URLs ) .'-->';
     238        //$html = $html; . '<!--' . json_encode( $PageCDN_known_URLs ) .'-->';
    219239       
    220240        PageCDN_cache_known_URLs( );
     
    230250    function PageCDN_rewriter_rewrite_url( $asset )
    231251    {
    232         Global $known_URLs , $discovered_new_URLs;
     252        Global  $PageCDN_known_URLs             ,
     253                $PageCDN_discovered_new_URLs    ,
     254                $PageCDN_check_hosts            ,
     255                $PageCDN_origin_host            ,
     256                $PageCDN_webp_support           ,
     257                $PageCDN_known_webp_URLs        ,
     258                $PageCDN_known_img_URLs         ;
    233259       
    234260        $url            = $asset[0];
     
    236262        $original_url   = $url;
    237263       
    238         //if( isset( $known_URLs[$original_url] ) )
     264        //if( isset( $PageCDN_known_URLs[$original_url] ) )
    239265        //{
    240         //  return $known_URLs[$original_url];
     266        //  return $PageCDN_known_URLs[$original_url];
    241267        //}
    242268       
     
    292318        if( PageCDN_private_cdn_enabled( ) )
    293319        {
     320            $optimizable_image  = false;
     321           
    294322            $url    = PageCDN_remove_query_string( $url );
     323           
     324            foreach( $PageCDN_check_hosts as $url_host )
     325            {
     326                if( ( strpos( $full_blog_url , $url_host ) === 0 ) && ( strpos( $url , $url_host ) !== 0 ) )
     327                {
     328                    #   host in URL needs to be corrected
     329                    #   Scheme is already corrected
     330                   
     331                    $_host  = parse_url( $url , PHP_URL_HOST );
     332                   
     333                    $url    = str_replace( $_host , $PageCDN_origin_host , $url );
     334                }
     335            }
    295336           
    296337            if( PageCDN_options('optimize_images') )
     
    298339                $flag   = '._o';
    299340               
    300                 if( isset( $_SERVER['HTTP_ACCEPT'] ) && ( strpos( $_SERVER['HTTP_ACCEPT'] , 'image/webp' ) !== false ) )
     341                if( $PageCDN_webp_support )
    301342                {
    302343                    $flag   = '._o_webp';
     
    335376                    }
    336377                   
    337                     $url    = str_replace( $replaceable , $flag . $replaceable , $url );
     378                    $url    = str_replace( $replaceable , $flag . $replaceable , $url );
     379                   
     380                    $optimizable_image  = true;
    338381                }
    339382                else if( in_array( strtolower( substr( $url , -4 ) ) , array( '.png' , '.jpg' ) ) )
    340383                {
    341384                    $url    = substr( $url , 0 , -4 ) . $flag . substr( $url , -4 );
     385                   
     386                    $optimizable_image  = true;
    342387                }
    343388                else if( in_array( strtolower( substr( $url , -5 ) ) , array( '.jpeg' ) ) )
    344389                {
    345390                    $url    = substr( $url , 0 , -5 ) . $flag . substr( $url , -5 );
     391                   
     392                    $optimizable_image  = true;
    346393                }
    347394            }
     
    359406                        $url    = substr_replace( $url , '.min'. substr( $url , -3 ) , strlen( $url ) - 3 , 3 );
    360407                    }
    361                 }
    362             }
    363            
    364             Global $PageCDN_check_hosts , $PageCDN_origin_host;
    365            
    366             foreach( $PageCDN_check_hosts as $url_host )
    367             {
    368                 if( ( strpos( $full_blog_url , $url_host ) === 0 ) && ( strpos( $url , $url_host ) !== 0 ) )
    369                 {
    370                     #   host in URL needs to be corrected
    371                     #   Scheme is already corrected
    372                    
    373                     $_host  = parse_url( $url , PHP_URL_HOST );
    374                    
    375                     $url    = str_replace( $_host , $PageCDN_origin_host , $url );
    376408                }
    377409            }
     
    383415            #   section do not get cached as such cache was skipped in public cdn too for errors.
    384416           
    385             $discovered_new_URLs        = true;
    386            
    387             $known_URLs[$original_url]  = $url;
    388            
    389             return $known_URLs[$original_url];
     417            $PageCDN_discovered_new_URLs        = true;
     418           
     419            if( $optimizable_image )
     420            {
     421                if( $PageCDN_webp_support )
     422                {
     423                    $PageCDN_known_webp_URLs[$original_url] = $url;
     424                   
     425                    return $PageCDN_known_webp_URLs[$original_url];
     426                }
     427                else
     428                {
     429                    $PageCDN_known_img_URLs[$original_url]  = $url;
     430                   
     431                    return $PageCDN_known_img_URLs[$original_url];
     432                }
     433            }
     434           
     435            $PageCDN_known_URLs[$original_url]  = $url;
     436           
     437            return $PageCDN_known_URLs[$original_url];
    390438        }
    391439       
     
    395443    function PageCDN_rewriter_cached_url( $url )
    396444    {
    397         Global $known_URLs , $discovered_new_URLs;
     445        Global $PageCDN_known_URLs , $PageCDN_discovered_new_URLs;
    398446       
    399447        static  $includes_json = array();
     
    445493            if( isset( $includes_json[$contents_hash] ) )
    446494            {
    447                 $discovered_new_URLs        = true;
     495                $PageCDN_discovered_new_URLs        = true;
    448496               
    449                 $known_URLs[$original_url]  = 'https://pagecdn.io'.$includes_json[$contents_hash];
     497                $PageCDN_known_URLs[$original_url]  = 'https://pagecdn.io'.$includes_json[$contents_hash];
    450498               
    451                 return $known_URLs[$original_url];
     499                return $PageCDN_known_URLs[$original_url];
    452500            }
    453501            else if( !PageCDN_rewriter_exclude_public_lookup( $url ) )
     
    486534                            }
    487535                           
    488                             $discovered_new_URLs        = true;
     536                            $PageCDN_discovered_new_URLs        = true;
    489537                           
    490                             $known_URLs[$original_url]  = $cdn_file;
     538                            $PageCDN_known_URLs[$original_url]  = $cdn_file;
    491539                           
    492                             return $known_URLs[$original_url];
     540                            return $PageCDN_known_URLs[$original_url];
    493541                        }
    494542                    }
     
    502550        }
    503551       
    504         $discovered_new_URLs        = true;
    505        
    506         $known_URLs[$original_url]  = PageCDN_remove_query_string( $url );
    507        
    508         return $known_URLs[$original_url];
    509     }
    510    
    511    
     552        $PageCDN_discovered_new_URLs        = true;
     553       
     554        $PageCDN_known_URLs[$original_url]  = PageCDN_remove_query_string( $url );
     555       
     556        return $PageCDN_known_URLs[$original_url];
     557    }
     558   
     559   
  • pagecdn/trunk/pagecdn.php

    r2241353 r2241379  
    77    Author URI: https://pagecdn.com
    88    License: GPLv2 or later
    9     Version: 5.0
     9    Version: 5.1
    1010*/
    1111   
     
    1818    define( 'PAGECDN_MIN_WP'        , '4.3'                                         );
    1919    define( 'PAGECDN_CACHE'         , WP_CONTENT_DIR . '/cache/pagecdn/cache.json'  );
    20     define( 'PAGECDN_VER'           , '5.0'                                         );
     20    define( 'PAGECDN_IMG_CACHE'     , WP_CONTENT_DIR . '/cache/pagecdn/images.json' );
     21    define( 'PAGECDN_WEBP_CACHE'    , WP_CONTENT_DIR . '/cache/pagecdn/webp.json'   );
     22    define( 'PAGECDN_VER'           , '5.1'                                         );
    2123   
    2224    $PageCDN_origin_scheme      = strtolower( parse_url( home_url( ) , PHP_URL_SCHEME ) );
     
    4648    require PAGECDN_DIR . '/admin-functions.php';
    4749   
    48     $known_URLs                 = array();
     50    $PageCDN_known_URLs             = array();
    4951   
    50     $discovered_new_URLs        = false;
     52    $PageCDN_known_img_URLs         = array();
    5153   
    52     $PageCDN_max_font_URLs      = 3;
     54    $PageCDN_known_webp_URLs        = array();
     55   
     56    $PageCDN_discovered_new_URLs    = false;
     57   
     58    $PageCDN_max_font_URLs          = 3;
     59   
     60    $PageCDN_webp_support           = isset( $_SERVER['HTTP_ACCEPT'] ) && ( strpos( $_SERVER['HTTP_ACCEPT'] , 'image/webp' ) !== false );
    5361   
    5462    if( !file_exists( PAGECDN_CACHE ) )
     
    5664        PageCDN_create_fs_hierarchy( dirname( PAGECDN_CACHE ) );
    5765       
    58         file_put_contents( PAGECDN_CACHE , json_encode( array( ) ) );
     66        $PageCDN_empty_file = json_encode( array() );
     67       
     68        file_put_contents( PAGECDN_CACHE , $PageCDN_empty_file );
     69       
     70        file_put_contents( PAGECDN_IMG_CACHE , $PageCDN_empty_file );
     71       
     72        file_put_contents( PAGECDN_WEBP_CACHE , $PageCDN_empty_file );
    5973    }
    6074   
    61     $data   = file_get_contents( PAGECDN_CACHE );
     75    $PageCDN_temp   = file_get_contents( PAGECDN_CACHE );
    6276   
    63     if( $data && strlen( $data ) )
     77    if( $PageCDN_temp && strlen( $PageCDN_temp ) )
    6478    {
    65         $known_URLs = json_decode( $data , true );
     79        $PageCDN_known_URLs = json_decode( $PageCDN_temp , true );
    6680    }
     81   
     82    unset( $PageCDN_temp );
     83   
     84   
     85    $PageCDN_temp   = file_get_contents( PAGECDN_IMG_CACHE );
     86   
     87    if( $PageCDN_temp && strlen( $PageCDN_temp ) )
     88    {
     89        $PageCDN_known_img_URLs = json_decode( $PageCDN_temp , true );
     90    }
     91   
     92    unset( $PageCDN_temp );
     93   
     94   
     95    $PageCDN_temp   = file_get_contents( PAGECDN_WEBP_CACHE );
     96   
     97    if( $PageCDN_temp && strlen( $PageCDN_temp ) )
     98    {
     99        $PageCDN_known_webp_URLs    = json_decode( $PageCDN_temp , true );
     100    }
     101   
     102    unset( $PageCDN_temp );
     103   
    67104   
    68105    PageCDN_hooks( );
Note: See TracChangeset for help on using the changeset viewer.