本文整理汇总了PHP中Util_Environment::document_root方法的典型用法代码示例。如果您正苦于以下问题:PHP Util_Environment::document_root方法的具体用法?PHP Util_Environment::document_root怎么用?PHP Util_Environment::document_root使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Util_Environment
的用法示例。
在下文中一共展示了Util_Environment::document_root方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: is_file_for_minification
/**
* URL file filter
*
* @param string $file
* @return bool
*/
public function is_file_for_minification($file)
{
static $external;
if (!isset($external)) {
$external = $this->config->get_array('minify.cache.files');
}
foreach ($external as $ext) {
if (preg_match('#' . Util_Environment::get_url_regexp($ext) . '#', $file)) {
if ($this->debug) {
Minify_Core::log('is_file_for_minification: whilelisted ' . $file);
}
return true;
}
}
$file_normalized = Util_Environment::remove_query_all($file);
$ext = strrchr($file_normalized, '.');
if ($ext != '.js' && $ext != '.css') {
if ($this->debug) {
Minify_Core::log('is_file_for_minification: unknown extension ' . $ext . ' for ' . $file);
}
return false;
}
if (Util_Environment::is_url($file_normalized)) {
if ($this->debug) {
Minify_Core::log('is_file_for_minification: its url ' . $file);
}
return false;
}
$path = Util_Environment::document_root() . '/' . $file;
if (!file_exists($path)) {
if ($this->debug) {
Minify_Core::log('is_file_for_minification: file doesnt exists ' . $path);
}
return false;
}
if ($this->debug) {
Minify_Core::log('is_file_for_minification: true for file ' . $file . ' path ' . $path);
}
return true;
}
示例2: rules_cache_generate_nginx
/**
* Generates directives for file cache dir
*
* @param Config $config
* @return string
*/
private function rules_cache_generate_nginx($config)
{
$cache_root = Util_Environment::normalize_path(W3TC_CACHE_PAGE_ENHANCED_DIR);
$cache_dir = rtrim(str_replace(Util_Environment::document_root(), '', $cache_root), '/');
if (Util_Environment::is_wpmu()) {
$cache_dir = preg_replace('~/w3tc.*?/~', '/w3tc.*?/', $cache_dir, 1);
}
$browsercache = $config->get_boolean('browsercache.enabled');
$compression = $browsercache && $config->get_boolean('browsercache.html.compression');
$expires = $browsercache && $config->get_boolean('browsercache.html.expires');
$lifetime = $browsercache ? $config->get_integer('browsercache.html.lifetime') : 0;
$cache_control = $browsercache && $config->get_boolean('browsercache.html.cache.control');
$w3tc = $browsercache && $config->get_integer('browsercache.html.w3tc');
$common_rules = '';
if ($expires) {
$common_rules .= " expires modified " . $lifetime . "s;\n";
}
if ($w3tc) {
$common_rules .= " add_header X-Powered-By \"" . Util_Environment::w3tc_header($config) . "\";\n";
}
if ($expires) {
$common_rules .= " add_header Vary \"Accept-Encoding, Cookie\";\n";
}
if ($cache_control) {
$cache_policy = $config->get_string('browsercache.html.cache.policy');
switch ($cache_policy) {
case 'cache':
$common_rules .= " add_header Pragma \"public\";\n";
$common_rules .= " add_header Cache-Control \"public\";\n";
break;
case 'cache_public_maxage':
$common_rules .= " add_header Pragma \"public\";\n";
$common_rules .= " add_header Cache-Control \"max-age=" . $lifetime . ", public\";\n";
break;
case 'cache_validation':
$common_rules .= " add_header Pragma \"public\";\n";
$common_rules .= " add_header Cache-Control \"public, must-revalidate, proxy-revalidate\";\n";
break;
case 'cache_noproxy':
$common_rules .= " add_header Pragma \"public\";\n";
$common_rules .= " add_header Cache-Control \"private, must-revalidate\";\n";
break;
case 'cache_maxage':
$common_rules .= " add_header Pragma \"public\";\n";
$common_rules .= " add_header Cache-Control \"max-age=" . $lifetime . ", public, must-revalidate, proxy-revalidate\";\n";
break;
case 'no_cache':
$common_rules .= " add_header Pragma \"no-cache\";\n";
$common_rules .= " add_header Cache-Control \"max-age=0, private, no-store, no-cache, must-revalidate\";\n";
break;
}
}
$rules = '';
$rules .= W3TC_MARKER_BEGIN_PGCACHE_CACHE . "\n";
$rules .= "location ~ " . $cache_dir . ".*html\$ {\n";
$rules .= $common_rules;
$rules .= "}\n";
if ($compression) {
$rules .= "location ~ " . $cache_dir . ".*gzip\$ {\n";
$rules .= " gzip off;\n";
$rules .= " types {}\n";
$rules .= " default_type text/html;\n";
$rules .= $common_rules;
$rules .= " add_header Content-Encoding gzip;\n";
$rules .= "}\n";
}
$rules .= W3TC_MARKER_END_PGCACHE_CACHE . "\n";
return $rules;
}
示例3: minify_filename_to_filenames_for_minification
/**
* Returns custom files
*
* @param string $hash
* @param string $type
* @return array
*/
function minify_filename_to_filenames_for_minification($hash, $type)
{
// if bad data passed as get parameter - it shouldn't fire internal errors
try {
$files = Minify_Core::minify_filename_to_urls_for_minification($hash, $type);
} catch (Exception $e) {
$files = array();
}
$result = array();
if (is_array($files) && count($files) > 0) {
foreach ($files as $file) {
$file = Util_Environment::url_to_docroot_filename($file);
if (Util_Environment::is_url($file)) {
$precached_file = $this->_precache_file($file, $type);
if ($precached_file) {
$result[] = $precached_file;
} else {
Minify_Core::debug_error(sprintf('Unable to cache remote file: "%s"', $file));
}
} else {
$path = Util_Environment::document_root() . '/' . $file;
if (file_exists($path)) {
$result[] = $file;
} else {
Minify_Core::debug_error(sprintf('File "%s" doesn\'t exist', $path));
}
}
}
} else {
Minify_Core::debug_error(sprintf('Unable to fetch custom files list: "%s.%s"', $hash, $type), false, 404);
}
return $result;
}
示例4: w3tc_cdn_test
/**
* CDN Test action
*
* @return void
*/
function w3tc_cdn_test()
{
$engine = Util_Request::get_string('engine');
$config = Util_Request::get_array('config');
//TODO: Workaround to support test case cdn/a04
if ($engine == 'ftp' && !isset($config['host'])) {
$config = Util_Request::get_string('config');
$config = json_decode($config, true);
}
$config = array_merge($config, array('debug' => false));
if (isset($config['domain']) && !is_array($config['domain'])) {
$config['domain'] = explode(',', $config['domain']);
}
if (Cdn_Util::is_engine($engine)) {
$result = true;
$error = null;
} else {
$result = false;
$error = __('Incorrect engine ' . $engine, 'w3-total-cache');
}
if (!isset($config['docroot'])) {
$config['docroot'] = Util_Environment::document_root();
}
if ($result) {
if ($engine == 'google_drive' || $engine == 'highwinds' || $engine == 'rackspace_cdn' || $engine == 'rscf' || $engine == 's3_compatible') {
// those use already stored w3tc config
$w3_cdn = Dispatcher::component('Cdn_Core')->get_cdn();
} else {
// those use dynamic config from the page
$w3_cdn = CdnEngine::instance($engine, $config);
}
@set_time_limit($this->_config->get_integer('timelimit.cdn_test'));
if ($w3_cdn->test($error)) {
$result = true;
$error = __('Test passed', 'w3-total-cache');
} else {
$result = false;
$error = sprintf(__('Error: %s', 'w3-total-cache'), $error);
}
}
$response = array('result' => $result, 'error' => $error);
echo json_encode($response);
}
示例5: import_library
/**
* Imports library
*
* @param integer $limit
* @param integer $offset
* @param integer $count
* @param integer $total
* @param array $results
* @return boolean
*/
function import_library($limit, $offset, &$count, &$total, &$results)
{
global $wpdb;
$count = 0;
$total = 0;
$results = array();
$upload_info = Util_Http::upload_info();
$uploads_use_yearmonth_folders = get_option('uploads_use_yearmonth_folders');
$document_root = Util_Environment::document_root();
@set_time_limit($this->_config->get_integer('timelimit.cdn_import'));
if ($upload_info) {
/**
* Search for posts with links or images
*/
$sql = sprintf('SELECT
ID,
post_content,
post_date
FROM
%sposts
WHERE
post_status = "publish"
AND (post_type = "post" OR post_type = "page")
AND (post_content LIKE "%%src=%%"
OR post_content LIKE "%%href=%%")
', $wpdb->prefix);
if ($limit) {
$sql .= sprintf(' LIMIT %d', $limit);
if ($offset) {
$sql .= sprintf(' OFFSET %d', $offset);
}
}
$posts = $wpdb->get_results($sql);
if ($posts) {
$count = count($posts);
$total = $this->get_import_posts_count();
$regexp = '~(' . $this->get_regexp_by_mask($this->_config->get_string('cdn.import.files')) . ')$~';
$config_state = Dispatcher::config_state();
$import_external = $config_state->get_boolean('cdn.import.external');
foreach ($posts as $post) {
$matches = null;
$replaced = array();
$attachments = array();
$post_content = $post->post_content;
/**
* Search for all link and image sources
*/
if (preg_match_all('~(href|src)=[\'"]?([^\'"<>\\s]+)[\'"]?~', $post_content, $matches, PREG_SET_ORDER)) {
foreach ($matches as $match) {
list($search, $attribute, $origin) = $match;
/**
* Check if $search is already replaced
*/
if (isset($replaced[$search])) {
continue;
}
$error = '';
$result = false;
$src = Util_Environment::normalize_file_minify($origin);
$dst = '';
/**
* Check if file exists in the library
*/
if (stristr($origin, $upload_info['baseurl']) === false) {
/**
* Check file extension
*/
$check_src = $src;
if (Util_Environment::is_url($check_src)) {
$qpos = strpos($check_src, '?');
if ($qpos !== false) {
$check_src = substr($check_src, 0, $qpos);
}
}
if (preg_match($regexp, $check_src)) {
/**
* Check for already uploaded attachment
*/
if (isset($attachments[$src])) {
list($dst, $dst_url) = $attachments[$src];
$result = true;
} else {
if ($uploads_use_yearmonth_folders) {
$upload_subdir = date('Y/m', strtotime($post->post_date));
$upload_dir = sprintf('%s/%s', $upload_info['basedir'], $upload_subdir);
$upload_url = sprintf('%s/%s', $upload_info['baseurl'], $upload_subdir);
} else {
$upload_subdir = '';
$upload_dir = $upload_info['basedir'];
$upload_url = $upload_info['baseurl'];
//.........这里部分代码省略.........
示例6: abspath_to_relative_path
/**
* Taks an absolute path and converts to a relative path to root
*
* @param unknown $path
* @return mixed
*/
function abspath_to_relative_path($path)
{
return str_replace(Util_Environment::document_root(), '', $path);
}
示例7: get_server_info
/**
* Returns server info
*
* @return array
*/
private function get_server_info()
{
global $wp_version, $wp_db_version, $wpdb;
$wordpress_plugins = get_plugins();
$wordpress_plugins_active = array();
foreach ($wordpress_plugins as $wordpress_plugin_file => $wordpress_plugin) {
if (is_plugin_active($wordpress_plugin_file)) {
$wordpress_plugins_active[$wordpress_plugin_file] = $wordpress_plugin;
}
}
$mysql_version = $wpdb->get_var('SELECT VERSION()');
$mysql_variables_result = (array) $wpdb->get_results('SHOW VARIABLES', ARRAY_N);
$mysql_variables = array();
foreach ($mysql_variables_result as $mysql_variables_row) {
$mysql_variables[$mysql_variables_row[0]] = $mysql_variables_row[1];
}
$server_info = array('w3tc' => array('version' => W3TC_VERSION, 'server' => !empty($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : 'Unknown', 'dir' => W3TC_DIR, 'cache_dir' => W3TC_CACHE_DIR, 'blog_id' => Util_Environment::blog_id(), 'home_domain_root_url' => Util_Environment::home_domain_root_url(), 'home_url_maybe_https' => Util_Environment::home_url_maybe_https(), 'site_path' => Util_Environment::site_path(), 'document_root' => Util_Environment::document_root(), 'site_root' => Util_Environment::site_root(), 'site_url_uri' => Util_Environment::site_url_uri(), 'home_url_host' => Util_Environment::home_url_host(), 'home_url_uri' => Util_Environment::home_url_uri(), 'network_home_url_uri' => Util_Environment::network_home_url_uri(), 'host_port' => Util_Environment::host_port(), 'host' => Util_Environment::host(), 'wp_config_path' => Util_Environment::wp_config_path()), 'wp' => array('version' => $wp_version, 'db_version' => $wp_db_version, 'abspath' => ABSPATH, 'home' => get_option('home'), 'siteurl' => get_option('siteurl'), 'email' => get_option('admin_email'), 'upload_info' => (array) Util_Http::upload_info(), 'theme' => Util_Theme::get_current_theme(), 'wp_cache' => defined('WP_CACHE') && WP_CACHE ? 'true' : 'false', 'plugins' => $wordpress_plugins_active), 'mysql' => array('version' => $mysql_version, 'variables' => $mysql_variables));
return $server_info;
}
示例8: get_files_custom
/**
* Exports custom files to CDN
*
* @return array
*/
function get_files_custom()
{
$files = array();
$document_root = Util_Environment::document_root();
$custom_files = $this->_config->get_array('cdn.custom.files');
$custom_files = array_map(array('\\W3TC\\Util_Environment', 'parse_path'), $custom_files);
$site_root = Util_Environment::site_root();
$path = Util_Environment::site_url_uri();
$site_root_dir = str_replace($document_root, '', $site_root);
if (strstr(WP_CONTENT_DIR, Util_Environment::site_root()) === false) {
$site_root = Util_Environment::document_root();
$path = '';
}
$content_path = trim(str_replace(WP_CONTENT_DIR, '', $site_root), '/\\');
foreach ($custom_files as $custom_file) {
if ($custom_file != '') {
$custom_file = Cdn_Util::replace_folder_placeholders($custom_file);
$custom_file = Util_Environment::normalize_file($custom_file);
if (!Util_Environment::is_wpmu()) {
$dir = trim(dirname($custom_file), '/\\');
$rel_path = trim(dirname($custom_file), '/\\');
} else {
$rel_path = $dir = trim(dirname($custom_file), '/\\');
}
if (strpos($dir, '<currentblog>') != false) {
$rel_path = $dir = str_replace('<currentblog>', 'blogs.dir/' . Util_Environment::blog_id(), $dir);
}
if ($dir == '.') {
$rel_path = $dir = '';
}
$mask = basename($custom_file);
$files = array_merge($files, Cdn_Util::search_files($document_root . '/' . $dir, $rel_path, $mask));
}
}
return $files;
}
示例9: url_to_docroot_filename
/**
* Normalizes file name for minify
* Relative to document root!
*
* @param string $file
* @return string
*/
public static function url_to_docroot_filename($url)
{
$data = array('home_url' => get_home_url(), 'url' => $url);
$data = apply_filters('w3tc_url_to_docroot_filename', $data);
$home_url = $data['home_url'];
$normalized_url = $data['url'];
$normalized_url = Util_Environment::remove_query_all($normalized_url);
// cut protocol
$normalized_url = preg_replace('~^http(s)?://~', '//', $normalized_url);
$home_url = preg_replace('~^http(s)?://~', '//', $home_url);
if (substr($normalized_url, 0, strlen($home_url)) != $home_url) {
// not a home url, return unchanged since cant be
// converted to filename
return $url;
} else {
$path_relative_to_home = str_replace($home_url, '', $normalized_url);
$home = set_url_scheme(get_option('home'), 'http');
$siteurl = set_url_scheme(get_option('siteurl'), 'http');
$home_path = rtrim(Util_Environment::site_path(), '/');
// adjust home_path if site is not is home
if (!empty($home) && 0 !== strcasecmp($home, $siteurl)) {
// $siteurl - $home
$wp_path_rel_to_home = rtrim(str_ireplace($home, '', $siteurl), '/');
if (substr($home_path, -strlen($wp_path_rel_to_home)) == $wp_path_rel_to_home) {
$home_path = substr($home_path, 0, -strlen($wp_path_rel_to_home));
}
}
// common encoded characters
$path_relative_to_home = str_replace('%20', ' ', $path_relative_to_home);
$full_filename = $home_path . DIRECTORY_SEPARATOR . trim($path_relative_to_home, DIRECTORY_SEPARATOR);
$docroot = Util_Environment::document_root();
if (substr($full_filename, 0, strlen($docroot)) == $docroot) {
$docroot_filename = substr($full_filename, strlen($docroot));
} else {
$docroot_filename = $path_relative_to_home;
}
}
// sometimes urls (coming from other plugins/themes)
// contain multiple "/" like "my-folder//myfile.js" which
// fails to recognize by filesystem, while url is accessible
$docroot_filename = str_replace('//', DIRECTORY_SEPARATOR, $docroot_filename);
return ltrim($docroot_filename, DIRECTORY_SEPARATOR);
}
示例10: replace_folder_placeholders
static function replace_folder_placeholders($file)
{
static $content_dir, $plugin_dir, $upload_dir;
if (empty($content_dir)) {
$content_dir = str_replace(Util_Environment::document_root(), '', WP_CONTENT_DIR);
$content_dir = substr($content_dir, strlen(Util_Environment::site_url_uri()));
$content_dir = trim($content_dir, '/');
if (defined('WP_PLUGIN_DIR')) {
$plugin_dir = str_replace(Util_Environment::document_root(), '', WP_PLUGIN_DIR);
$plugin_dir = trim($plugin_dir, '/');
} else {
$plugin_dir = str_replace(Util_Environment::document_root(), '', WP_CONTENT_DIR . '/plugins');
$plugin_dir = trim($plugin_dir, '/');
}
$upload_dir = Util_Environment::wp_upload_dir();
$upload_dir = str_replace(Util_Environment::document_root(), '', $upload_dir['basedir']);
$upload_dir = trim($upload_dir, '/');
}
$file = str_replace('{wp_content_dir}', $content_dir, $file);
$file = str_replace('{plugins_dir}', $plugin_dir, $file);
$file = str_replace('{uploads_dir}', $upload_dir, $file);
return $file;
}