首页 > 其他分享 >项目中增加统计代码

项目中增加统计代码

时间:2023-12-27 09:23:22浏览次数:34  
标签:项目 代码 环境 百度 ENV hm 环境变量 统计

在项目里增加 百度统计代码

在项目里 增加 百度统计代码,但是我只想在生产环境上加,测试上不加,预发布也不加,如何实现呢?

要在你的项目中仅在生产环境中添加百度统计代码,你可以采用以下方法来实现:

  1. 使用环境变量

    • 在你的项目中设置一个环境变量,例如 NODE_ENVENVIRONMENT,在生产环境中将其值设为 "production",在测试和预发布环境中设置为其他值,如 "development""staging"
  2. 条件引入统计代码

    • 在你需要插入百度统计代码的地方(通常在HTML的 <head> 标签内),使用编程语言(如JavaScript、Python、PHP等)检查环境变量的值。

以下是一个使用JavaScript的示例:

if (process.env.NODE_ENV === 'production') {
  // 在这里插入百度统计代码
  var _hmt = _hmt || [];
  (function() {
    var hm = document.createElement("script");
    hm.src = "https://hm.baidu.com/hm.js?YOUR_BAIDU_ANALYTICS_CODE";
    var s = document.getElementsByTagName("script")[0]; 
    s.parentNode.insertBefore(hm, s);
  })();
}

在这个例子中,只有当 NODE_ENV 环境变量的值为 "production" 时,才会加载并执行百度统计代码。

  1. 配置部署流程
    • 确保在测试和预发布环境中,你的部署流程设置环境变量为非生产环境的值。
    • 在生产环境中,将环境变量设置为 "production"

通过这种方式,你可以在不同的环境中控制是否加载百度统计代码,从而实现只在生产环境中添加统计代码的目标。

PHP项目实现

在PHP项目中,你通常不会直接使用 process.env.NODE_ENV,因为这是Node.js环境中的一个常见做法。在PHP中,你可以通过以下方式来实现类似的环境检测:

  1. 使用服务器环境变量

    • 在你的服务器上设置一个环境变量,例如 APP_ENVNODE_ENV
    • 在PHP代码中,你可以使用 $_SERVER['APP_ENV']$_SERVER['NODE_ENV'] 来访问这个环境变量的值。
  2. 配置文件

    • 创建一个配置文件(如 config.php),在这个文件中定义一个变量来表示当前环境:
<?php
define('ENVIRONMENT', 'production'); // 或者 'development'、'staging' 等
  1. 条件引入统计代码
    • 在你需要插入百度统计代码的地方,检查 ENVIRONMENT 变量的值。

以下是一个使用PHP的示例:

<?php
if (defined('ENVIRONMENT') && ENVIRONMENT === 'production') {
  // 在这里插入百度统计代码
  echo '<script>
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?YOUR_BAIDU_ANALYTICS_CODE";
      var s = document.getElementsByTagName("script")[0]; 
      s.parentNode.insertBefore(hm, s);
    })();
  </script>';
}
?>

在这个例子中,只有当 ENVIRONMENT 常量的值为 production 时,才会输出百度统计代码。

请确保在你的部署流程中,根据目标环境正确地设置环境变量或配置文件的值。

在ThinkPHP框架中,你可以通过以下步骤来实现只在生产环境中添加百度统计代码:

  1. 创建配置文件

    • 在你的ThinkPHP项目的配置目录(通常为 config/)下,创建一个或多个环境特定的配置文件。例如,你可以创建 config/production.phpconfig/staging.phpconfig/development.php
  2. 定义环境变量

    • 在你的服务器环境中设置一个环境变量,例如 APP_ENVNODE_ENV
    • 在ThinkPHP的 .env 文件中(如果使用了 .env 文件),或者在项目入口文件(如 public/index.php)中,根据服务器环境变量的值来定义一个常量或变量来表示当前环境:
// 在 .env 文件中(如果使用了 .env)
APP_ENV=production

// 或者在 public/index.php 中
define('APP_ENV', $_SERVER['APP_ENV'] ?? 'development');
  1. 配置环境特定的配置文件
    • 在相应的环境特定配置文件中,定义一个键来存储是否启用百度统计代码:
// config/production.php
return [
    // ...
    'baidu_analytics' => [
        'enabled' => true,
        'code' => 'YOUR_BAIDU_ANALYTICS_CODE',
    ],
];

// config/staging.php 和 config/development.php
return [
    // ...
    'baidu_analytics' => [
        'enabled' => false,
        'code' => 'YOUR_BAIDU_ANALYTICS_CODE',
    ],
];
  1. 引入和使用配置
    • 在你的视图(模板)文件中,引入并检查配置以确定是否输出百度统计代码:
<!-- 在你的视图文件中 -->
<?php if (isset($config['baidu_analytics']['enabled']) && $config['baidu_analytics']['enabled']): ?>
    <script>
        var _hmt = _hmt || [];
        (function() {
            var hm = document.createElement("script");
            hm.src = "https://hm.baidu.com/hm.js?<?= $config['baidu_analytics']['code']; ?>";
            var s = document.getElementsByTagName("script")[0]; 
            s.parentNode.insertBefore(hm, s);
        })();
    </script>
<?php endif; ?>

在这个例子中,只有当 baidu_analytics.enabled 配置项的值为 true 时,才会输出百度统计代码。

  1. 确保正确的环境加载
    • 在ThinkPHP的配置加载过程中,确保根据当前环境加载对应的配置文件。如果你使用的是ThinkPHP 6,框架已经内置了对环境特定配置的支持。你只需在配置目录下按照上述方式组织配置文件即可。

通过这种方式,你可以在不同的环境中控制是否加载百度统计代码,从而实现只在生产环境中添加统计代码的目标。



欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

公众号

Don’t reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)

标签:项目,代码,环境,百度,ENV,hm,环境变量,统计
From: https://www.cnblogs.com/lovebing/p/17929783.html

相关文章

  • 【ESP32 项目】使用 gitee 镜像在 unbuntu 搭建esp-idf 环境
    推荐先看文章:《ESP32,使用gitee搭建ESP-IDF开发框架》链接:https://blog.csdn.net/weiqifa0/article/details/119066253?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170359954116800185837038%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%......
  • 代码随想录算法训练营第十四天 | 二叉树理论基础,递归遍历,分别迭代遍历, 统一迭代遍历
    一、二叉树理论基础学习:1.从二叉树是否包含数值进行分类:无数值:完全二叉树和满二叉树有数值的:二叉搜索树和平衡二叉搜索树(AVL,Adelson-VelskyandLandis)。其中二叉搜索树指数值按照从小到大的顺序是左子树<根结点<右子树,平衡指的是左右子树高度差不超过12.二叉树存......
  • 一些基于SpringBoot2.X的后台管理系统,可以作为高校毕设项目、个人学习之用
    该酒店管理系统适用于各类酒店管理,用于提高酒店内部工作效率。主要是针对酒店内部工作人员即管理员和酒店普通员工设计的。主要是具备客房预订、退房、房间信息管理、员工管理、入住管理等模块,提高了酒店内部业务的运转效率,大大降低了成本;该系统基于SpringBoot+VUE+MyBatisPlus......
  • 聚合支付项目-16
    1、商户服务需求概述1.1商户注册惠民支付为商户提供聚合支付业务,线下商户和线上商户都可以使用惠民支付平台。什么是线下和线上商户?1)线下场所支付商户使用线下场所支付的商户是指有实体经营场所的商家,也称为地面商户,一般包含酒店、餐厅、酒吧、美容、美发、媒体、影楼、家政......
  • Nginx项目部署
    本篇来总结一下vue项目打包部署到nginx上的流程和注意事项使用1.Vue打包在NPM脚本中找到build,或者在终端控制台输入npmrunbuild就可以对vue项目进行打包在文件目录dist中的文件就是本次打包的文件2.nginx简介Nginx是一款轻量级的Web服务器/反向代理服务器及其电子邮件......
  • 【UniApp】-uni-app-项目计算功能(苹果计算器)
    前言本文主要介绍苹果计算器项目中计算功能的实现在前面的文章中已经实现了输入,动态计算字体大小,以及计算器的布局本文主要介绍计算功能的实现正文实现/清空/改变正负/除以100inputText已经实现了,接下来实现operator的功能,operator方法在之前的文章中已经定义好了,......
  • MagicArray:像php一样,让Go业务代码不再卷!
    卷!一个字形容了当今码农行业的现状。一层一层的代码结构,一个一个dto,entity,vo,req,resp。这些对象越来越多,让码农们非常劳于奔命,加一个字段,改一个字段,影响面有多少。代码量也越来越大。有可能一个代码,要建10多个数据对象。这虽然有点夸张,但体现了行业的乱象。我是曾经写php代码的......
  • 排查java代码慢-arthas工具
    1.下载地址,arthas(gitee.io)2.下载的是一个zip包 3.上传到服务器任意位置,解压 4.查看java进程ps-ef|grep进程名称显示结果的进程号是:1098156.cd到arthas根目录,执行命令java-jararthas-boot.jar109815启动成功如下:注意:如果是用systemctl启动的,注意下......
  • 项目自定义代码规范
    2023年底了马上2024年了,今年没写几篇文章,事情太多。长大是痛苦的要经历很多。收~进入正题今天带来一个创建项目团队合作开发的规范。跟上我的步伐,从0-1开始吧!eslintESLint是一个可配置的JavaScript检查器。它可以帮助你发现并修复JavaScript代码中的问题。问题可以指......
  • 计算机病毒与恶意代码(第4版)课后习题答案
    第一章:略第二章:一、填空题1带后台存储的RASPM模型2基本隔离模型,分隔模型,流模型,限制解释模型3引导模块,触发模块,感染模块,破坏模块4驻留内存,窃取系统控制权,恢复系统功能5随机访问模型(RAM)二、选择题1A2D3ABCD4AD第三章:一、填空题1引导区病毒,文件型病毒2......