PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.17.9
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.17.9
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 1 year ago languages 1 year ago nitropack-sdk 1 year ago view 1 year ago advanced-cache.php 2 years ago batcache-compat.php 4 years ago constants.php 1 year ago diagnostics.php 2 years ago functions.php 1 year ago helpers.php 3 years ago main.php 1 year ago readme.txt 1 year 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