最近做一个项目,需要在短期之内开发出一个系统来控制一群网站,也就是站群管理系统,还是用PHP开发,然而时间太紧凑了,于是近期使用了另外一种方式来实现站群管理:传参
百度一下,会发现网络上很多大佬提供了多种方式的传参,也就是数据调用,通过这种方式,可以控制一群网站的一些核心参数或者数据,达到1控N的效果。
优缺点也很明显,优点是便捷快速易懂
缺点是功能限制,只能控制固定的参数或者标签,无法实现网站文档更新的群控,只能实现网站里的一些文本、数字、链接、图片、开关等静态数据。
目前比较常用两种方式:JS传参、URL传参****
JS传参:Html或Htm静态页中调用JS文件中的变量值
- 1、新建JS文件,文件名随意,如test.js
- 2、在html中调用这个JS:
<script src="/styles/js/test.js"></script>
- 3、在html文件中添加调用变量值(参数)代码:
<script>document.write(key1);</script>//key1是自定义的识别标签,类似id
- 4、JS文件中的写法
var key1='文本1';
var key2='文本1';
var key3='文本1';
注:javascript文件中可以写多个变量,只要在html文件写好对应变量名即可
URL传参:通过在url里的变量值来确定要传递的数据
使用场景:我在一个网页中,网页有很多固定的数据,如:公司名称、电话、地址、电话的链接、某段文字、某张图片等,然后公司名下有众多含这些数据的网站,需要做到群控管理这些数据,那么我就选择用url传参的方式来实现需要的功能。注意,这种方式仅适用于对源码不是很重视的网站,比如百度的竞价站或者某些快餐网站,对seo没要求的站点,并且这种传输方式不支持发布文章等功能,只能传递固定的数据。
- 1、新建一个PHP文件,比如test.php,代码内容如下
<?php
$_GET['site'] ? $site = $_GET['site'] : $site = 0; //定义site这个变量,并且默认为第0个参数(表示第1个)开始
$_GET['mod'] ? $mod = $_GET['mod'] : $mod = 0; //定义mod这个变量,并且默认为第0个参数(表示第1个)开始
$_GET['ism'] ? $ism = $_GET['ism'] : $ism = 0; //定义ism这个变量,并且默认为第0个参数(表示第1个)开始
$dataarr = array(
'baidu' =>array(
'logo' => array('logo名称1','logo名称2','logo名称3'),
'header' => array('头部内容1','头部内容2','头部内容3'),
'footer' => array('底部内容1','底部内容2','底部内容3'),
'tel' => array('010-123456','010-345678','010-124578'),
),
'360' =>array(
'logo' => array('logo名称1','logo名称2','logo名称3'),
'header' => array('头部内容1','头部内容2','头部内容3'),
'footer' => array('底部内容1','底部内容2','底部内容3'),
'tel' => array('010-123456','010-345678','010-124578'),
),
'google' =>array(
'logo' => array('logo名称1','logo名称2','logo名称3'),
'header' => array('头部内容1','头部内容2','头部内容3'),
'footer' => array('底部内容1','底部内容2','底部内容3'),
'tel' => array('010-123456','010-345678','010-124578'),
),
);
if(array_key_exists($site, $dataarr)){
$data = $dataarr[$site][$mod][$ism];//匹配三个变量所对应的参数
$datajs = "document.write('".$data."')";//参数用JS转html的形式
}
echo $datajs;//输出最终转化好的数据
?>
- 2、在html或者htm中调用你想要的参数,比如我要baidu+footer+1所对应的数据
调用案例:
<p><script src="http://www.xxx.com/test.php?site=baidu&mod=footer&ism=1"></script></p>
最终这一段代码的输出是 “底部内容2”
以上两种方法其实都很常用,只是看怎么用,传参的方式也有很多种,只是这两种比较常用罢了,我也蛮喜欢,也算以一种比较冷门的方式实现了群控的目的,后期如果有更好的传参方式,将做更新。