403Webshell
Server IP : 192.158.238.246  /  Your IP : 18.217.55.199
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/php-xray/php/profiler/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/php-xray/php/profiler/classes/xray-profiler-collector-blocking-resources.php
<?php

/**
 * Copyright (с) Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2022 All Rights Reserved
 *
 * Licensed under CLOUD LINUX LICENSE AGREEMENT
 * https://www.cloudlinux.com/legal/
 */

namespace XrayProfiler;

if (! class_exists('\XrayProfiler\CollectorBlockingResources')) {
    class CollectorBlockingResources extends Collector
    {
        /**
         * Number of blocking CSS resources found.
         *
         * @var int
         */
        private $css_resource_count = 0;

        /**
         * How many times empty buffer occurred.
         *
         * @var int
         */
        private $empty_buffer_occurred = 0;

        /**
         * @var self|null
         */
        private static $instance = null;

        private function __construct()
        {
            $this->data = [
                'css' => 0,
            ];
        }

        private function __clone()
        {
        }

        /**
         * @return self
         */
        public static function instance()
        {
            if (is_null(self::$instance)) {
                self::$instance = new self();
                self::$instance->clean();
            }

            return self::$instance;
        }

        /**
         * Filter the output buffer contents.
         *
         * @param string $buffer Contents of the output buffer.
         *
         * @return string
         */
        public function startOutputBuffering($buffer)
        {
            if (empty($buffer)) {
                $this->empty_buffer_occurred++;

                return $buffer;
            }

            $this->scanForBlockingCss($buffer);

            return $buffer;
        }

        /**
         * Flush the output buffer.
         *
         * @return void
         */
        public function stopOutputBuffering()
        {
            if (ob_get_contents()) {
                ob_end_flush();
            }
        }

        /**
         * Looks for blocking CSS resources in given HTML code.
         *
         * The number of found resources is added to a local counter.
         *
         * @param string $html
         *
         * @return void
         */
        private function scanForBlockingCss($html)
        {
            $parser = new CssResourceParser();
            $parser->parse($html);

            $this->css_resource_count += $parser->getCount();
        }

        /**
         * @return array
         */
        public function getData()
        {
            $value = $this->css_resource_count;
            if (0 === $value && $this->empty_buffer_occurred > 0) {
                $value = $this->empty_buffer_occurred * -1;
            }

            return [
                'css' => $value,
            ];
        }

        /**
         * {@inheritDoc}
         */
        public function getXrayData()
        {
            return $this->getData();
        }

        /**
         * {@inheritDoc}
         */
        public function clean()
        {
            $this->css_resource_count    = 0;
            $this->empty_buffer_occurred = 0;
            $this->data                  = [];

            return $this;
        }
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit