($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('H:i');
$s = "";
return $s;
}
// form_date('start', '2018-07-05') 为空则当前日期
function form_date($name, $value = 0, $width = FALSE)
{
$style = '';
if (FALSE !== $width) {
is_numeric($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('Y-m-d');
$s = "";
return $s;
}
/**用法
*
* echo form_radio_yes_no('radio1', 0);
* echo form_checkbox('aaa', array('无', '有'), 0);
*
* echo form_radio_yes_no('aaa', 0);
* echo form_radio('aaa', array('无', '有'), 0);
* echo form_radio('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'b');
*
* echo form_select('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'a');
*/
?>组保留的标签 余下为需要删除的标签
unset($oldtag[$key]);
}
}
}
if (!empty($oldtag)) {
$tagids = array();
foreach ($oldtag as $tagid => $tagname) {
$tagids[] = $tagid;
}
well_oldtag_delete($tagids, $tid);
}
$r = well_tag_process($tid, $fid, $create_tag, $tagarr);
return $r;
}
// 删除标签和绑定的主题
function well_oldtag_delete($tagids, $tid)
{
$pagesize = count($tagids);
$arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize);
$delete_tagids = array(); // 删除
$tagids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
if (1 == $val['count']) {
// 只有一个主题
$delete_tagids[] = $val['tagid'];
} else {
$tagids[] = $val['tagid'];
}
}
!empty($delete_tagids) and well_tag_delete($delete_tagids);
$arlist = well_tag_thread_find_by_tid($tid, 1, $n);
if ($arlist) {
$ids = array();
foreach ($arlist as $val) $ids[] = $val['id'];
well_tag_thread_delete($ids);
}
!empty($tagids) and well_tag_update($tagids, array('count-' => 1));
}
// 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签
function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array())
{
if (empty($tid)) return '';
// 新标签处理入库
if ($new_tags) {
$threadarr = array();
$tagids = array();
$i = 0;
$size = 5;
$n = count($tagarr);
$n = $n > $size ? $size : $size - $n;
foreach ($new_tags as $name) {
++$i;
$name = trim($name);
$name = stripslashes($name);
$name = strip_tags($name);
$name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name);
$name = htmlspecialchars($name, ENT_QUOTES);
if ($name && $i <= $n) {
// 查询标签
$read = well_tag_read_name($name);
if ($read) {
// 存在 count+1
$tagids[] = $read['tagid'];
} else {
// 入库
$arr = array('name' => $name, 'count' => 1);
$tagid = well_tag_create($arr);
FALSE === $tagid and message(-1, lang('create_failed'));
$read = array('tagid' => $tagid, 'name' => $name);
}
$tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid);
$threadarr[] = $tag_thread;
$tagarr[$read['tagid']] = $read['name'];
}
}
!empty($threadarr) and tag_thread_big_insert($threadarr);
!empty($tagids) and well_tag_update($tagids, array('count+' => 1));
}
$json = empty($tagarr) ? '' : xn_json_encode($tagarr);
return $json;
}
?>return $r;
}
/**
* @param int $page 页数
* @param int $pagesize 每页显示数量
* @return mixed
*/
function link_find($page = 1, $pagesize = 100)
{
$arr = link__find($cond = array(), array('rank' => -1), $page, $pagesize);
return $arr;
}
/**
* @param $id
* @return bool 返回FALSE失败 TRUE成功
*/
function link_delete($id)
{
if (empty($id)) return FALSE;
$r = link__delete(array('id' => $id));
link_delete_cache();
return $r;
}
//--------------------------kv + cache--------------------------
/**
* @return mixed 返回全部友情链接
*/
function link_get($page = 1, $pagesize = 100)
{
$g_link = website_get('friends_link');
if (empty($g_link)) {
$g_link = link_find($page, $pagesize);
$g_link AND website_set('friends_link', $g_link);
}
return $g_link;
}
// delete kv and cache
function link_delete_cache()
{
website_set('friends_link', '');
return TRUE;
}
?> $v = implode(",", $v);
$temp[] = $v;
}
// 去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
// 再将拆开的数组重新组装
$output = array();
foreach ($temp as $k => $v) {
if ($stkeep) $k = $starr[$k];
if ($ndformat) {
$temparr = explode(",", $v);
foreach ($temparr as $ndkey => $ndval) $output[$k][$ndarr[$ndkey]] = $ndval;
} else $output[$k] = explode(",", $v);
}
return $output;
}
// 合并二维数组 如重复 值以第一个数组值为准
function array2_merge($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array1 as $k => $v) {
isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]);
}
return $arr;
}
/*
* 对二维数组排序 两个数组必须有一个相同的键值
* $array1 需要排序数组
* $array2 按照该数组key排序
* */
function array2_sort_key($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array2 as $k => $v) {
if (isset($v[$key]) && $v[$key] == $array1[$v[$key]][$key]) {
$arr[$v[$key]] = $array1[$v[$key]];
} else {
$arr[] = $v;
}
}
return $arr;
}
?>
【网络运维知识】—路由器与交换机区别-软件玩家 - 软件改变生活!
【网络运维知识】—路由器与交换机区别
- 一、路由器(Router)和交换机(Switch)对比
- 1.1 功能
- 1.2 转发方式
- 1.3 范围
- 1.4 处理方式
路由器(Router)和交换机(Switch)是网络中两种不同的设备,它们在网络中扮演着不同的角色和功能。
一、路由器(Router)和交换机(Switch)对比
1.1 功能
路由器(Router):路由器是一种网络设备,用于在不同的网络之间转发数据包。它能够根据目标 IP 地址来确定数据包的最佳路径,并将数据包从一个网络转发到另一个网络,实现不同网络之间的通信。
交换机(Switch):交换机是用于在局域网(LAN)内部传输数据的设备。它负责学习和记录连接到它的设备的 MAC 地址,并根据 MAC 地址来转发数据包,从而实现局域网内设备之间的通信。
1.2 转发方式
路由器: 路由器基于网络层(OSI 模型中的第三层)的信息(例如 IP 地址)来进行数据包转发。
交换机: 交换机可以根据其功能和工作层次进一步分为二层交换机和三层交换机。
二层交换机工作在 OSI 模型的数据链路层(第二层),主要基于设备的 MAC 地址来进行数据包的转发和学习。
它们能够在局域网内部实现快速的数据包转发,通过建立 MAC 地址表(也称为转发表)来识别连接到交换机的各个设备,并根据目标 MAC 地址来决定数据包的转发路径。
二层交换机通常用于构建局域网(LAN),用于连接局域网内的各种设备,并实现高效的数据交换。
三层交换机在二层交换机的基础上增加了路由功能,能够在网络层(第三层)上进行数据包的转发和路由选择。
除了能够学习和识别设备的 MAC 地址外,三层交换机还能够处理 IP 数据包,并根据 IP 地址来进行路由转发。
三层交换机通常用于构建大型网络,能够提供更高级的网络管理和控制功能,如 VLAN 隔离、静态路由、动态路由(如 OSPF、EIGRP)、ACL(访问控制列表)等。
总的来说,二层交换机主要负责在数据链路层上进行数据包转发,而三层交换机不仅可以在数据链路层上进行转发,还可以在网络层上进行路由转发,提供更为复杂的网络管理功能。
1.3 范围
路由器: 路由器工作在广域网(WAN)和局域网(LAN)之间,用于连接不同的网络。
交换机: 交换机主要用于局域网(LAN)内部,用于连接局域网内的各种设备。
1.4 处理方式
路由器: 路由器对数据包进行转发时,会对数据包进行分析和处理,并根据目标地址进行转发决策,因此它能够提供网络分段、网络隔离、安全性等功能。
交换机: 交换机主要负责在局域网内部进行数据包转发,它通常不对数据包进行深度处理,二层交换机 只是根据目标设备的 MAC 地址进行转发,但 三层交换机 能够处理 IP 数据包,并根据 IP 地址来进行路由转发。
本文标签:
路由器交换机区别知识网络
更多相关文章
成为WiFi信号放大师——华硕路由器AP模式轻松设置指南
华硕(ASUS)路由器AP模式设置教程 总结就是1.AP路由设置LANIP跟一级路由同一个网段,例如,一级的是192.168.1.1,AP:192.168.1.X。2.把一级路由的网关和DNS填上AP那里 问:
不是只有交换机,TP-Link也能玩转无线AP模式
使用场景 案例:1比如一个办公室里面有一台连接网线的打印机,或者是一台电脑的文件夹需要共享,办公室的网口就只有几个,而且网口出来的IP地址都是172开头的,你既想要路由器可以实现上网,又想连接打印机
从入门到进阶:路由器VS交换机,带你玩转网络技术
相信有很多人在学习网络的过程中,都会对路由器与交换机的区别与联系感到疑惑不解,因为这两台设备的功能看起来似乎一样。然而,其实路由器与交换机大有不同,下面是我对此的一些理解,希望能够帮助到你! 它们在哪里工作? 根据 O
从入门到精通:交换机与路由器的对比讲解
交换机和路由器都是网络设备,但它们在功能、工作层次、数据转发方式等多个方面存在区别 1. 功能 交换机主要功能是连接多个设备,实现这些设备之间的数据交换。它能够根据 MAC 地址(物理地址)来识
理解你的家庭局域网:路由器与交换机的区别
相信有很多人在学习网络的过程中,都会对路由器与交换机的区别与联系感到疑惑不解,因为这两台设备的功能看起来似乎一样。然而,其实路由器与交换机大有不同,下面是我对此的一些理解,希望能够帮助到你! 它们在哪里工作? 根据 O
网络世界大探索:路由器、交换机与网关之间的区别与应用
1.路由协议的了解和介绍?路由协议所使用的算法? 1)内部网关协议(IGP):RIP(路由信息协议,距离矢量路由协议,16跳),OSPF(开放式最短路径优先,链路状态路由协议)。 2)外部网关协议(EGP):BGP(边
互联网畅行无阻的秘密武器:了解网关、路由器与交换机的作用
1. 调制解调器:简单理解就是一根网线,实现模拟信号与数字信号之间的转换2. 路由器:就是提供一个dhcp、nat、路由功能的一个设备,连接不同的网络(包括局域网与WAN之间的连接,
路由器大揭秘:入门到精通的全面教程
简介:路由器说明书是用户正确安装和使用网络设备的关键指导文档,涵盖硬件连接、网络配置、无线设置及高级功能启用等全流程。本文深入解析路由器的基本构造与安装步骤,包括WANLAN接口连接、登录管理界面、设置SSID与安全密码、选择工作频
一步到位!详解如何正确安装SWF协议下的路由器
如何安装路由器 1、将路由器与光猫、网卡连接 先将路由器的WAN口连接上猫输出的网线,再将路由器上的LAN口接到电脑网卡。(tips:千万别接反了) 2、设置路由器基本参数 打开你的浏览器,
Win10系统小白教程:快速改写网络标识
在Win10系统下查看网络连接,我们可能会看到以太网下的小字,网络1、网络、网络3这些网络名称,很多朋友由于安装网卡驱动太多次可能会出现络络10的情况,那么如何修改这个网络名称呢?下面小编和大家分享下相关教程。方法一 :通过本地安全
一招搞定:教你发现隐藏的Wi-Fi密码和SSID!
在连接无线网络(Wi-Fi)时,你经常会看到一长串网络名称,例如: ChinaNet-5G TP-LINK_home Starbucks_WiFi Letsvpnwifi_8
新手教程:掌握使用 Adobe Flash Player 播放 SWF 格式视频技巧
SSID(Service Set Identifier)即服务集标识符,是WLAN网络的标识,用来区分不同的WLAN网络。SSID包括BSSID和ESSID两种类型,BSSID通常不被终端用户感知,主要用于管理和维护;而ESSID就是
一招让你轻松抓取WiFi网络名-SSID大揭秘
在连接无线网络(Wi-Fi)时,你经常会看到一长串网络名称,例如: ChinaNet-5G TP-LINK_home Starbucks_WiFi Letsvpnwifi_8
无线迷雾:深入解读SSID对连接的影响
SSID(Service Set Identifier)即服务集标识符,是WLAN网络的标识,用来区分不同的WLAN网络。SSID包括BSSID和ESSID两种类型,BSSID通常不被终端用户感知,主要用于管理和维护;而ESSID就是
不懂SSID?一文了解你的WiFi名字含义
网络SSID是什么意思网络SSID是什么意思?无线网络中SSID,是路由器发送的无线信号的名字。如果你将你的无线路由器的SSID:命名为:taipingyang,那么当你的无线路由器开启,并启用了
无需技术教程,搞懂SSID:无线网络的隐藏代码揭秘!
一、什么是SSID SSID(Service Set Identifier)是无线网络中的一个重要概念,它是一个用于标识无线局域网(WLAN)的名称。SSID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称
详解中国电信WLAN设置:打造稳定无线网络环境
0x00 前言 还记得电信天翼宽带吗?现在的天翼宽带的终端基本是华为的无限路由了,相信有不少同学在包装了中国电信天翼宽带后,个人申请到一个账号密码,并且额外缴费得到一个路由器,然后就没有然后了。心里就纳闷,咋上wifi
新手必读:详解设置路由器IP地址,让你的网络更流畅
IP地址是计算机网络中的关键元素,用于标识和定位设备和主机。在家庭或办公室网络中,路由器起到了连接内部设备和外部互联网的关键作用。为了使网络正常运行,需要正确设置路由器的IP地址。本文将介绍如何设置路由器的IP地址,以确保网络顺畅运
副路由器设置秘籍:打造无缝连接的家庭局域网
问:双路由器上网应该怎么连接和设置?一个路由器往往不能够满足使用需求,需要增加一个路由器,组成双路由器上网。 第一个路由器按照说明书设置可以正常上网,但是第二个路由器按照常规的设置,却不能够实现上网,双路由器要实
破解0x00000709或0x00000057代码障碍:快速修复网络打印机连接错误指南!
项目场景:连接网络打印机报错0x00000709或0x00000057解决尝试 问题描述在同一网域内连接打印机网络,遇到如下等警告: 尝试了网上的N种方法,重启、更新驱动、删除系统安全更新、用打印机修复
发表评论