PATH:
home
/
lab2454c
/
archfort.com
/
wp-content
/
plugins
/
wordfence
/
modules
/
login-security
/
classes
/
utility
<?php namespace WordfenceLS; class Utility_MultisiteConfigurationExtractor { private $prefix, $suffix; private $suffixOffset; public function __construct($prefix, $suffix) { $this->prefix = new Utility_MeasuredString($prefix); $this->suffix = new Utility_MeasuredString($suffix); $this->suffixOffset = -$this->suffix->length; } /** * Parses a `get_user_meta` result array into a more usable format. The input array will be something similar to * [ * 'wp_capabilities' => '...', * 'wp_3_capabilities' => '...', * 'wp_4_capabilities' => '...', * 'wp_10_capabilities' => '...', * ] * * This will return * [ * 1 => '...', * 3 => '...', * 4 => '...', * 10 => '...', * ] * * @param array $values * @return array */ private function parseBlogIds($values) { $parsed = array(); foreach ($values as $key => $value) { if (substr($key, $this->suffixOffset) === $this->suffix->string && strpos($key, (string) $this->prefix) === 0) { $blogId = substr($key, $this->prefix->length, strlen($key) - $this->prefix->length + $this->suffixOffset); if (empty($blogId)) { $parsed[1] = $value; } else if (substr($blogId, -1) === '_') { $parsed[(int) $blogId] = $value; } } } return $parsed; } /** * Filters $values, which is the resulting array from `$this->parseBlogIds` so it contains only the values for the * sites in $sites. * * @param array $values * @param array $sites * @return array */ private function filterValues($values, $sites) { $filtered = array(); foreach ($sites as $site) { $blogId = (int) $site->blog_id; $filtered[$blogId] = $values[$blogId]; } return $filtered; } /** * Processes a `get_user_meta` result array to re-key it so the keys are the numerical ID of all multisite blog IDs * in `$values` that are still in an active state. * * @param array $values * @return array */ public function extract($values) { $parsed = $this->parseBlogIds($values); if (empty($parsed)) return $parsed; $sites = Utility_Multisite::retrieve_active_sites(array_keys($parsed)); return $this->filterValues($parsed, $sites); } }
[-] baseconversion.php
[edit]
[+]
..
[-] array.php
[edit]
[-] serialization.php
[edit]
[-] number.php
[edit]
[-] multisite.php
[edit]
[-] url.php
[edit]
[-] measuredstring.php
[edit]
[-] lock.php
[edit]
[-] databaselock.php
[edit]
[-] nulllock.php
[edit]
[-] multisiteconfigurationextractor.php
[edit]
[-] sleep.php
[edit]