403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/laragon/www/app/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/laragon/www/app/prensa.php
<?php
const WP_LEGACY_API_BASE_URL = 'https://prensa.quillacollo.gob.bo/wp-json/wp/v2';
const WP_API_CACHE_TTL = 300;

function wp_api_base_url() {
    $configuredUrl = getenv('WP_API_BASE_URL');
    if (!empty($configuredUrl)) {
        return rtrim($configuredUrl, '/');
    }

    if (!empty($_SERVER['HTTP_HOST'])) {
        $scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
        $host = $_SERVER['HTTP_HOST'];
        $projectBasePath = '';

        if ($host === 'prensa.quillacollo.gob.bo') {
            return "{$scheme}://{$host}/wp-json/wp/v2";
        }

        if (!empty($_SERVER['SCRIPT_NAME'])) {
            $projectBasePath = preg_replace('#/(app|endpoints|layouts|modules|pages|sections)/.*$#', '', $_SERVER['SCRIPT_NAME']);
            $projectBasePath = rtrim($projectBasePath ?: '', '/');
        }

        return "{$scheme}://{$host}{$projectBasePath}/prensa/wp-json/wp/v2";
    }

    return WP_LEGACY_API_BASE_URL;
}

function wp_local_api_base_url() {
    if (empty($_SERVER['HTTP_HOST'])) {
        return null;
    }

    $scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
    $host = $_SERVER['HTTP_HOST'];
    $projectBasePath = '';

    if ($host === 'prensa.quillacollo.gob.bo') {
        return "{$scheme}://{$host}/wp-json/wp/v2";
    }

    if (!empty($_SERVER['SCRIPT_NAME'])) {
        $projectBasePath = preg_replace('#/(app|endpoints|layouts|modules|pages|sections)/.*$#', '', $_SERVER['SCRIPT_NAME']);
        $projectBasePath = rtrim($projectBasePath ?: '', '/');
    }

    return "{$scheme}://{$host}{$projectBasePath}/prensa/wp-json/wp/v2";
}

function wp_api_url($endpoint, array $params = []) {
    $endpoint = trim($endpoint, '/');
    $url = wp_api_base_url() . "/{$endpoint}";

    if (!empty($params)) {
        $url .= '?' . http_build_query($params);
    }

    return $url;
}

function wp_category_url($categoryId) {
    return wp_api_url('categories/' . (int) $categoryId);
}

function wp_posts_url(array $params = []) {
    if (!array_key_exists('_embed', $params)) {
        $params['_embed'] = 1;
    }

    return wp_api_url('posts', $params);
}

function wp_secure_media_url($url) {
    if (empty($url)) {
        return '';
    }

    $url = html_entity_decode($url, ENT_QUOTES | ENT_HTML5, 'UTF-8');
    return preg_replace('#^http://prensa\.quillacollo\.gob\.bo/#i', 'https://prensa.quillacollo.gob.bo/', $url);
}

function wp_extract_first_content_image_url($content) {
    if (empty($content)) {
        return '';
    }

    if (preg_match('/<img[^>]+(?:data-src|data-lazy-src|src)=["\']([^"\']+\.(?:jpg|jpeg|png|gif|webp))(?:\?[^"\']*)?["\']/i', $content, $matches)) {
        return wp_secure_media_url($matches[1]);
    }

    return '';
}

function wp_post_featured_image_url(array $post, $fallbackFromContent = true) {
    $featuredMedia = $post['_embedded']['wp:featuredmedia'][0] ?? null;

    if (is_array($featuredMedia)) {
        $sizes = $featuredMedia['media_details']['sizes'] ?? [];
        foreach (['medium_large', 'large', 'full', 'medium', 'thumbnail'] as $sizeName) {
            if (!empty($sizes[$sizeName]['source_url'])) {
                return wp_secure_media_url($sizes[$sizeName]['source_url']);
            }
        }

        if (!empty($featuredMedia['source_url'])) {
            return wp_secure_media_url($featuredMedia['source_url']);
        }
    }

    if (!empty($post['jetpack_featured_media_url'])) {
        return wp_secure_media_url($post['jetpack_featured_media_url']);
    }

    if ($fallbackFromContent) {
        return wp_extract_first_content_image_url($post['content']['rendered'] ?? '');
    }

    return '';
}

function find_wp_category_id($category, array $categories) {
    if ($category === null || $category === '') {
        return null;
    }

    if (is_numeric($category)) {
        return (int) $category;
    }

    foreach ($categories as $item) {
        if (isset($item['name'], $item['id']) && $item['name'] === $category) {
            return (int) $item['id'];
        }
    }

    return null;
}

function normalize_wp_api_url($url) {
    $legacyBases = [
        'https://prensa.quillacollo.gob.bo/wp-json/wp/v2',
        'http://prensa.quillacollo.gob.bo/wp-json/wp/v2',
    ];

    foreach ($legacyBases as $legacyBase) {
        if (strpos($url, $legacyBase) === 0) {
            return wp_api_base_url() . substr($url, strlen($legacyBase));
        }
    }

    return $url;
}

function wp_api_fallback_url($url) {
    $localBase = wp_local_api_base_url();
    if (empty($localBase) || strpos($url, $localBase) !== 0) {
        return null;
    }

    return WP_LEGACY_API_BASE_URL . substr($url, strlen($localBase));
}

function wp_api_cache_dir() {
    return __DIR__ . '/cache/wp-api';
}

function wp_api_cache_path($url) {
    return wp_api_cache_dir() . '/' . sha1('v3:' . $url) . '.json';
}

function wp_api_read_cache($url) {
    global $wpApiLastHeaders;

    $path = wp_api_cache_path($url);
    if (!is_file($path) || (time() - filemtime($path)) > WP_API_CACHE_TTL) {
        return null;
    }

    $cached = file_get_contents($path);
    $decoded = json_decode($cached, true);

    if (!is_array($decoded)) {
        return null;
    }

    if (array_key_exists('data', $decoded)) {
        $wpApiLastHeaders = $decoded['headers'] ?? [];
        return is_array($decoded['data']) ? $decoded['data'] : null;
    }

    $wpApiLastHeaders = [];
    return $decoded;
}

function wp_api_write_cache($url, array $data, array $headers = []) {
    $dir = wp_api_cache_dir();
    if (!is_dir($dir)) {
        mkdir($dir, 0775, true);
    }

    file_put_contents(wp_api_cache_path($url), json_encode([
        'headers' => $headers,
        'data' => $data,
    ]));
}

function wp_api_last_total_pages($default = 1) {
    global $wpApiLastHeaders;

    foreach ($wpApiLastHeaders ?? [] as $name => $value) {
        if (strtolower($name) === 'x-wp-totalpages') {
            return max(1, (int) $value);
        }
    }

    return $default;
}

$apiUrl = wp_posts_url();


function decode_api($url, $allowFallback = true) {
    global $wpApiLastHeaders;

    $curl = null;
    $wpApiLastHeaders = [];

    try {
        if ($allowFallback) {
            $url = normalize_wp_api_url($url);
        }

        $cachedData = wp_api_read_cache($url);
        if ($cachedData !== null) {
            return $cachedData;
        }

        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_SSL_VERIFYPEER => false, // Disable SSL verification
            CURLOPT_SSL_VERIFYHOST => false, // Disable SSL host verification
            CURLOPT_HEADERFUNCTION => function ($curl, $header) use (&$wpApiLastHeaders) {
                $length = strlen($header);
                $parts = explode(':', $header, 2);

                if (count($parts) === 2) {
                    $wpApiLastHeaders[strtolower(trim($parts[0]))] = trim($parts[1]);
                }

                return $length;
            },
        ));
        $response = curl_exec($curl);

        if ($response === false) {
            error_log("WordPress API cURL error for {$url}: " . curl_error($curl));
            return array();
        }

        $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        if ($httpCode < 200 || $httpCode >= 300) {
            error_log("WordPress API HTTP {$httpCode} for {$url}");
            $fallbackUrl = $allowFallback ? wp_api_fallback_url($url) : null;
            if (!empty($fallbackUrl)) {
                return decode_api($fallbackUrl, false);
            }
            return array();
        }

        $decoded_data = json_decode($response, true);
        if ($decoded_data === null) {
            error_log("WordPress API JSON error for {$url}: " . json_last_error_msg());
            $fallbackUrl = $allowFallback ? wp_api_fallback_url($url) : null;
            if (!empty($fallbackUrl)) {
                return decode_api($fallbackUrl, false);
            }
            return array();
        }

        wp_api_write_cache($url, $decoded_data, $wpApiLastHeaders);

        return $decoded_data;
    } catch (Exception $e) {
        error_log("WordPress API exception: " . $e->getMessage());
        return array();
    } finally {
        if ($curl !== null) {
            curl_close($curl);
        }
    }
}


// function decode_api($url) {
//     try {
//         $context = stream_context_create([
//             "ssl" => [
//                 "verify_peer" => false,
//                 "verify_peer_name" => false,
//             ],
//         ]);
//         $response = file_get_contents($url, false, $context);        
//         $response = file_get_contents($url);
//         if ($response === false) {
//             return array();
//         }        
//         $decoded_data = json_decode($response, true);
//         if ($decoded_data === null) {
//             return array();
//         }        
//         return $decoded_data;
//     } catch (Exception $e) {
//         return array();
//     }
// }

function getAllByCategory(){

    $categoryIds = [261,13,1, 27,273,5,25,17,24,266];
    $noticiasByCategory = [];
    foreach ($categoryIds as $categoryId) {
        $url = wp_posts_url(['categories' => $categoryId]);
        $noticias = decode_api($url);
        $noticiasByCategory[$categoryId] = $noticias;
    }
    return $noticiasByCategory;
}
function get3NewsByCategory(string $categoryId){
    $url = wp_posts_url(['categories' => $categoryId, 'per_page' => 3]);
    $noticiasByCategory = decode_api($url);
    return $noticiasByCategory;
}

function getNewsByCategory(string $categoryId){
    $url = wp_posts_url(['categories' => $categoryId]);
    $noticiasByCategory = decode_api($url);
    return $noticiasByCategory;
}
function getNewsByUser(string $userId){
    $url = wp_posts_url(['author' => $userId]);
    $noticiasByUser = decode_api($url);
    return $noticiasByUser;
}
function getListC($i){
    $urlUser = wp_api_url('users');
    $urlCategories = wp_api_url('categories');
    $urlTags = wp_api_url('tags');

    switch ($i) {
        case "categories":
            $List = decode_api($urlCategories);
            break;
        case "users":
           $List = decode_api($urlUser);
            break;
        case "tags":
            $List = decode_api($urlTags);
            break;
    }

    return $List;
}
function getList($filtro) {
    $List = [];
    $i = 1;

    do {
        $urlC = wp_api_url($filtro, ['page' => $i, 'per_page' => 100]);
        $ListC = decode_api($urlC);

        if (!empty($ListC)) {
            $List = array_merge($List, $ListC);
            $i++;
        } else {
            break; 
        }
    } while (true);

    return $List;
}


function getAllNews()
    {   global $apiUrl;
        $noticias = decode_api($apiUrl);
        return $noticias;
}

// function getAll()
//     {   global $apiUrl;
//         $urlUsers ="https://prensa.quillacollo.gob.bo/wp-json/wp/v2/users";
//         $urlCategories ="https://prensa.quillacollo.gob.bo/wp-json/wp/v2/categories";
//         $urlTags ="https://prensa.quillacollo.gob.bo/wp-json/wp/v2/tags";
//         $noticias = decode_api($apiUrl);
//         $userList = decode_api($urlUsers);
//         $catList = decode_api($urlCategories);
//         $tagList = decode_api($urlTags);

//         $currentPage = LengthAwarePaginator::resolveCurrentPage();
//         $perPage = 5; // Number of items per page
//         $items = collect($noticias);
//         $total = count($items);
//         $noticias = new LengthAwarePaginator(
//             $items->forPage($currentPage, $perPage),
//             $total,
//             $perPage,
//             $currentPage
//         );
//         $noticias->setPath('news');

//         return $noticias;
// }

function truncateDescription($description, $maxWords = 15, $maxChars = 100) {
    // Truncate by words
    $words = explode(' ', $description);
    if (count($words) > $maxWords) {
        $description = implode(' ', array_slice($words, 0, $maxWords)) . '...';
    }

    // Truncate by characters
    if (strlen($description) > $maxChars) {
        $description = substr($description, 0, $maxChars) . '...';
    }

    return $description;
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit