ascvh@#%(^-^)V ?host,ip,port,protocol,title,domain,country,city,link,org ???à JFIF  x x ?? C         ?? C   ?à   " ??     ?? μ  } !1AQa "q2?‘?#B±áR?e$3br? %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz??…???‰?’“”?–—???¢£¤¥|§¨?a23′μ?·?1o??????èéêòó???×?ùúáa?????èéê?òó???÷?ùú??     ?? μ   w !1AQ aq"2?B‘?±á #3Rebr?{ gilour

File "favicon.php"

Full Path: /home/zcziejy/ryadselyen/plugins/seo_1766648493/includes/favicon.php
File size: 2.82 KB
MIME-type: text/x-php
Charset: utf-8

<?php

// Exits if accessed directly.
if ( ! defined( 'ABSPATH' ) ) exit;

/**
 * YM Fast SEO site icon class.
 */
class YMFSEO_Favicon {
	/**
	 * Inits site icon.
	 * 
	 * @since 4.0.0
	 */
	public static function init () {
		if ( YMFSEO_Checker::is_imagick_available() ) {
			// Clears rewrite rules after updating site icon.
			add_action( 'update_option_site_icon', function () {
				flush_rewrite_rules();
			});

			if ( YMFSEO_Checker::is_svg_favicon() ) {
				// Adds favicons rewrite rules.
				add_action( 'init', function () {
					add_rewrite_rule( '^favicon\.svg$',          'index.php?ymfseo_favicon=svg', 'top' );
					add_rewrite_rule( '^favicon-ico\.ico$',      'index.php?ymfseo_favicon=ico', 'top' );
					add_rewrite_rule( '^favicon-32\.png$',       'index.php?ymfseo_favicon=32',  'top' );
					add_rewrite_rule( '^favicon-96\.png$',       'index.php?ymfseo_favicon=96',  'top' );
					add_rewrite_rule( '^favicon-192\.png$',      'index.php?ymfseo_favicon=192', 'top' );
					add_rewrite_rule( '^apple-touch-icon\.png$', 'index.php?ymfseo_favicon=180', 'top' );
				});
				add_filter( 'query_vars', function ( array $vars ) : array {
					$vars[] = 'ymfseo_favicon';
	
					return $vars;
				});
				add_action( 'template_redirect', function () {
					$favicon_type = get_query_var( 'ymfseo_favicon' );
	
					$site_icon_id   = get_option( 'site_icon' );
					$site_icon_path = get_attached_file( $site_icon_id );
	
					$imagick = new Imagick();
					$imagick->setBackgroundColor( new ImagickPixel( 'transparent' ) );
					$imagick->readImage( $site_icon_path );
					$imagick->setImageFormat( 'png' );
	
					// PNG formats.
					if ( is_numeric( $favicon_type ) ) {
						$size = (int) $favicon_type;
	
						$imagick->resizeImage( $size, $size, Imagick::FILTER_LANCZOS, 1 );
	
						header( 'Content-Type: image/png' );
						header( 'Cache-Control: max-age=31536000, public' );
						echo $imagick; // phpcs:ignore
	
						exit;
					}
	
					// Other formats.
					switch ( $favicon_type ) {
						case 'svg':
							header( 'Content-Type: image/svg+xml' );
							header( 'Cache-Control: max-age=31536000, public' );
							echo YMFSEO::get_filesystem()->get_contents( $site_icon_path ); // phpcs:ignore
	
							exit;
						case 'ico':
							$imagick->resizeImage( 48, 48, Imagick::FILTER_LANCZOS, 1 );
							$imagick->setImageFormat( 'ico' );
	
							header( 'Content-Type: image/x-icon' );
							header( 'Cache-Control: max-age=31536000, public' );
							echo $imagick; // phpcs:ignore
	
							exit;
					}
				});
	
				// Removes default favicon output.
				remove_action( 'wp_head', 'wp_site_icon', 99 );
	
				// Adds new favicon output.
				add_action( 'wp_head', function () {
					include YMFSEO_ROOT_DIR . 'parts/favicon.php';
				}, 99 );
			}
		}
	}
}