PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.18.2
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.18.2
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / advanced-cache.php
nitropack Last commit date
classes 11 months ago languages 1 year ago nitropack-sdk 11 months ago view 11 months ago advanced-cache.php 1 year ago batcache-compat.php 1 year ago constants.php 11 months ago diagnostics.php 11 months ago functions.php 11 months ago helpers.php 1 year ago main.php 11 months ago readme.txt 11 months ago uninstall.php 1 year ago
advanced-cache.php
67 lines
1 <?php
2
3 defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
4
5 if (strpos($_SERVER["REQUEST_URI"], "nitroHealthcheck") !== false) {
6 // This healthcheck is used to quickly check test whether the PHP application is able to handle the requests
7 // Mainly used to check for errors after .htaccess has been modified
8 echo "Healthy";
9 exit;
10 }
11
12 $nitropack_functions_file = '/*NITROPACK_FUNCTIONS_FILE*/';
13 $nitropack_abspath = '/*NITROPACK_ABSPATH*/';
14
15 // We need the ABSPATH check in order to verify that the functions file which we are about to load belongs to the expected WP installation.
16 // Otherwise issues may occur when a site is being duplicated in a subdir on the same server.
17 if (file_exists($nitropack_functions_file) && ABSPATH == $nitropack_abspath) {
18 define( 'NITROPACK_ADVANCED_CACHE', true);
19 define( 'NITROPACK_ADVANCED_CACHE_VERSION', '/*NP_VERSION*/');
20 define( 'NITROPACK_LOGGED_IN_COOKIE', '/*LOGIN_COOKIES*/' );
21 require_once $nitropack_functions_file;
22 }
23
24 if (defined("NITROPACK_VERSION") && defined("NITROPACK_ADVANCED_CACHE_VERSION") && NITROPACK_VERSION == NITROPACK_ADVANCED_CACHE_VERSION && nitropack_is_dropin_cache_allowed()) {
25 nitropack_handle_request("drop-in");
26 $nitro = get_nitropack_sdk();
27
28 if (null !== $nitro) {
29 $np_siteConfig = nitropack_get_site_config();
30 if ( !empty($np_siteConfig["alwaysBuffer"]) || ($nitro->isAJAXRequest() && $nitro->isAllowedAJAX()) ) {
31 define( 'NITROPACK_IS_BUFFERING', true );
32 ob_start(function($buffer) use (&$nitro) {
33
34 $respHeaders = headers_list();
35 $contentType = NULL;
36 foreach ($respHeaders as $respHeader) {
37 if (stripos(trim($respHeader), 'Content-Type:') === 0) {
38 $contentType = $respHeader;
39 }
40 }
41
42 // If the content type header was detected and it's value does not contain 'text/html',
43 // don't attach the beacon script.
44 $contentHeaderIsCorrect = true;
45 if ($contentType !== NULL && stripos($contentType, 'text/html') === false) {
46 $contentHeaderIsCorrect = false;
47 }
48
49 if ($contentHeaderIsCorrect && !preg_match("/<html.*?\s(amp|⚡)(\s|=|>)/", $buffer)) {
50 if (nitropack_passes_cookie_requirements() && nitropack_passes_page_requirements(false) && !defined("NITROPACK_BEACON_PRINTED")) {
51 define("NITROPACK_BEACON_PRINTED", true);
52 $buffer = str_replace("</body", nitropack_get_beacon_script() . "</body", $buffer);
53 }
54 }
55
56
57 if ($nitro->isAJAXRequest() && $nitro->isAllowedAJAX()) {
58 $nitro->pageCache->setContent($buffer, []);
59 }
60 return $buffer;
61 }, 0, PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE);
62 } else {
63 define( 'NITROPACK_IS_BUFFERING', false );
64 }
65 }
66 }
67