检测mysql同步状态实现代码(php/linux)
代码如下 | 复制代码 |
#!/bin/sh "show slave statusG" | grep -i "running") |
php实例代码
代码如下 | 复制代码 |
check_rep.php <!--?php<br /-->if(empty($_REQUEST["key"])) die(':) missing key'); include("mysql_instance.php"); define("USERNAME", "用户名"); $instances = get_instances(); if($instances){ <!-- 30分钟自动刷新 --> END; n"; n"; ["Last_IO_Errno"] . ")"; ["Last_SQL_Errno"] . ")"; n"; n"; END; <!--?php<br /-->/* <!--?php array(); |
将以上三个PHP文件放在虚拟目录中,然后通过URL访问。
访问方式:http://ip/check_repl.php?key=xupeng
HTTP 头:
Connection Keep-Alive
Date Sun, 06 May 2012 18:00:36 GMT
Last-Modified Sun, 06 May 2012 17:31:02 GMT
Etag ec1f629013925ab0fa4389ba926e8c06
Keep-Alive timeout=15, max=299
Server Apache/2.2.16 (Unix) DAV/2
Vary Accept-Encoding
请注意其中的这两行,描述了页面的缓存信息:
Last-Modified Sun, 06 May 2012 17:31:02 GMT
Etag ec1f629013925ab0fa4389ba926e8c06这个情况下,如果服务器响应 304 状态码,浏览器会自觉地从缓存中读取数据;如果响应 200 状态码,不管有没有客户端缓存,照样从服务端读取。
按照这个理论支撑,比如站长军团大部分查询结果都是 ajax 异步获取的,二次访问就都可以通过这种方式进行缓存改造。只要客户端有缓存,就向客户端发送一个 304 响应状态码,然后退出程序执行。
浏览器发出的请求中包含 If-Modified-Since 和 If-None-Match 两个参数:
If-Modified-Since 表示询问数据的最后修改时间是否是某个时间值。然后服务器会检查数据的最后修改时间,如果是该时间则返回 304 状态码,客户端接收到该状态码后直接从本地读取缓存。这种情况有一个前置条件,即本地必须存在缓存资源,浏览器才会发送 If-Modified-Since 参数,并且值为上一次服务器返回的 Last-Modified 值。
If-None-Match 类似,它由服务器返回的 Etag 值生成,仅仅用于服务器检查数据的修改时间,可以是任意值。考虑到 If-Modified-Since 结合 Last-Modified 的方法并不被所有服务器支持,这里就只考虑使用 etag 的实现。
PHP 中通过 $_SERVER['HTTP_IF_NONE_MATCH'] 可以判断文件是否被浏览器缓存,代码片段如下:
//使用 etag 标记控制缓存
代码如下 | 复制代码 |
$etag = md5(date('Ymd')); if ($_SERVER['HTTP_IF_NONE_MATCH'] == $etag) { header('Etag:' . $etag, true, 304); exit(); } else { header('Etag:' . $etag); |
}这里我使用当日日期来生成 etag,这样可以保证缓存最多生效一天时间,这个参数可以根据需要修改。
补充说明:
即便是 304 响应,实际上还是会请求服务端,因为需要建立连接来判断是否需要传输数据,304 缓存节约的是静态资源传输的开销;
另一种缓存是 200 响应时的缓存,不建立连接但请求会响应 200 状态码,并从本地直接读取缓存。
代码如下 | 复制代码 |
<?php class GetPingYing { private $pylist = array( 'a'=>-20319, 'ai'=>-20317, 'an'=>-20304, 'ang'=>-20295, 'ao'=>-20292, 'ba'=>-20283, 'bai'=>-20265, 'ban'=>-20257, 'bang'=>-20242, 'bao'=>-20230, 'bei'=>-20051, 'ben'=>-20036, 'beng'=>-20032, 'bi'=>-20026, 'bian'=>-20002, 'biao'=>-19990, 'bie'=>-19986, 'bin'=>-19982, 'bing'=>-19976, 'bo'=>-19805, 'bu'=>-19784, 'ca'=>-19775, 'cai'=>-19774, 'can'=>-19763, 'cang'=>-19756, 'cao'=>-19751, 'ce'=>-19746, 'ceng'=>-19741, 'cha'=>-19739, 'chai'=>-19728, 'chan'=>-19725, 'chang'=>-19715, 'chao'=>-19540, 'che'=>-19531, 'chen'=>-19525, 'cheng'=>-19515, 'chi'=>-19500, 'chong'=>-19484, 'chou'=>-19479, 'chu'=>-19467, 'chuai'=>-19289, 'chuan'=>-19288, 'chuang'=>-19281, 'chui'=>-19275, 'chun'=>-19270, 'chuo'=>-19263, 'ci'=>-19261, 'cong'=>-19249, 'cou'=>-19243, 'cu'=>-19242, 'cuan'=>-19238, 'cui'=>-19235, 'cun'=>-19227, 'cuo'=>-19224, 'da'=>-19218, 'dai'=>-19212, 'dan'=>-19038, 'dang'=>-19023, 'dao'=>-19018, 'de'=>-19006, 'deng'=>-19003, 'di'=>-18996, 'dian'=>-18977, 'diao'=>-18961, 'die'=>-18952, 'ding'=>-18783, 'diu'=>-18774, 'dong'=>-18773, 'dou'=>-18763, 'du'=>-18756, 'duan'=>-18741, 'dui'=>-18735, 'dun'=>-18731, 'duo'=>-18722, 'e'=>-18710, 'en'=>-18697, 'er'=>-18696, 'fa'=>-18526, 'fan'=>-18518, 'fang'=>-18501, 'fei'=>-18490, 'fen'=>-18478, 'feng'=>-18463, 'fo'=>-18448, 'fou'=>-18447, 'fu'=>-18446, 'ga'=>-18239, 'gai'=>-18237, 'gan'=>-18231, 'gang'=>-18220, 'gao'=>-18211, 'ge'=>-18201, 'gei'=>-18184, 'gen'=>-18183, 'geng'=>-18181, 'gong'=>-18012, 'gou'=>-17997, 'gu'=>-17988, 'gua'=>-17970, 'guai'=>-17964, 'guan'=>-17961, 'guang'=>-17950, 'gui'=>-17947, 'gun'=>-17931, 'guo'=>-17928, 'ha'=>-17922, 'hai'=>-17759, 'han'=>-17752, 'hang'=>-17733, 'hao'=>-17730, 'he'=>-17721, 'hei'=>-17703, 'hen'=>-17701, 'heng'=>-17697, 'hong'=>-17692, 'hou'=>-17683, 'hu'=>-17676, 'hua'=>-17496, 'huai'=>-17487, 'huan'=>-17482, 'huang'=>-17468, 'hui'=>-17454, 'hun'=>-17433, 'huo'=>-17427, 'ji'=>-17417, 'jia'=>-17202, 'jian'=>-17185, 'jiang'=>-16983, 'jiao'=>-16970, 'jie'=>-16942, 'jin'=>-16915, 'jing'=>-16733, 'jiong'=>-16708, 'jiu'=>-16706, 'ju'=>-16689, 'juan'=>-16664, 'jue'=>-16657, 'jun'=>-16647, 'ka'=>-16474, 'kai'=>-16470, 'kan'=>-16465, 'kang'=>-16459, 'kao'=>-16452, 'ke'=>-16448, 'ken'=>-16433, 'keng'=>-16429, 'kong'=>-16427, 'kou'=>-16423, 'ku'=>-16419, 'kua'=>-16412, 'kuai'=>-16407, 'kuan'=>-16403, 'kuang'=>-16401, 'kui'=>-16393, 'kun'=>-16220, 'kuo'=>-16216, 'la'=>-16212, 'lai'=>-16205, 'lan'=>-16202, 'lang'=>-16187, 'lao'=>-16180, 'le'=>-16171, 'lei'=>-16169, 'leng'=>-16158, 'li'=>-16155, 'lia'=>-15959, 'lian'=>-15958, 'liang'=>-15944, 'liao'=>-15933, 'lie'=>-15920, 'lin'=>-15915, 'ling'=>-15903, 'liu'=>-15889, 'long'=>-15878, 'lou'=>-15707, 'lu'=>-15701, 'lv'=>-15681, 'luan'=>-15667, 'lue'=>-15661, 'lun'=>-15659, 'luo'=>-15652, 'ma'=>-15640, 'mai'=>-15631, 'man'=>-15625, 'mang'=>-15454, 'mao'=>-15448, 'me'=>-15436, 'mei'=>-15435, 'men'=>-15419, 'meng'=>-15416, 'mi'=>-15408, 'mian'=>-15394, 'miao'=>-15385, 'mie'=>-15377, 'min'=>-15375, 'ming'=>-15369, 'miu'=>-15363, 'mo'=>-15362, 'mou'=>-15183, 'mu'=>-15180, 'na'=>-15165, 'nai'=>-15158, 'nan'=>-15153, 'nang'=>-15150, 'nao'=>-15149, 'ne'=>-15144, 'nei'=>-15143, 'nen'=>-15141, 'neng'=>-15140, 'ni'=>-15139, 'nian'=>-15128, 'niang'=>-15121, 'niao'=>-15119, 'nie'=>-15117, 'nin'=>-15110, 'ning'=>-15109, 'niu'=>-14941, 'nong'=>-14937, 'nu'=>-14933, 'nv'=>-14930, 'nuan'=>-14929, 'nue'=>-14928, 'nuo'=>-14926, 'o'=>-14922, 'ou'=>-14921, 'pa'=>-14914, 'pai'=>-14908, 'pan'=>-14902, 'pang'=>-14894, 'pao'=>-14889, 'pei'=>-14882, 'pen'=>-14873, 'peng'=>-14871, 'pi'=>-14857, 'pian'=>-14678, 'piao'=>-14674, 'pie'=>-14670, 'pin'=>-14668, 'ping'=>-14663, 'po'=>-14654, 'pu'=>-14645, 'qi'=>-14630, 'qia'=>-14594, 'qian'=>-14429, 'qiang'=>-14407, 'qiao'=>-14399, 'qie'=>-14384, 'qin'=>-14379, 'qing'=>-14368, 'qiong'=>-14355, 'qiu'=>-14353, 'qu'=>-14345, 'quan'=>-14170, 'que'=>-14159, 'qun'=>-14151, 'ran'=>-14149, 'rang'=>-14145, 'rao'=>-14140, 're'=>-14137, 'ren'=>-14135, 'reng'=>-14125, 'ri'=>-14123, 'rong'=>-14122, 'rou'=>-14112, 'ru'=>-14109, 'ruan'=>-14099, 'rui'=>-14097, 'run'=>-14094, 'ruo'=>-14092, 'sa'=>-14090, 'sai'=>-14087, 'san'=>-14083, 'sang'=>-13917, 'sao'=>-13914, 'se'=>-13910, 'sen'=>-13907, 'seng'=>-13906, 'sha'=>-13905, 'shai'=>-13896, 'shan'=>-13894, 'shang'=>-13878, 'shao'=>-13870, 'she'=>-13859, 'shen'=>-13847, 'sheng'=>-13831, 'shi'=>-13658, 'shou'=>-13611, 'shu'=>-13601, 'shua'=>-13406, 'shuai'=>-13404, 'shuan'=>-13400, 'shuang'=>-13398, 'shui'=>-13395, 'shun'=>-13391, 'shuo'=>-13387, 'si'=>-13383, 'song'=>-13367, 'sou'=>-13359, 'su'=>-13356, 'suan'=>-13343, 'sui'=>-13340, 'sun'=>-13329, 'suo'=>-13326, 'ta'=>-13318, 'tai'=>-13147, 'tan'=>-13138, 'tang'=>-13120, 'tao'=>-13107, 'te'=>-13096, 'teng'=>-13095, 'ti'=>-13091, 'tian'=>-13076, 'tiao'=>-13068, 'tie'=>-13063, 'ting'=>-13060, 'tong'=>-12888, 'tou'=>-12875, 'tu'=>-12871, 'tuan'=>-12860, 'tui'=>-12858, 'tun'=>-12852, 'tuo'=>-12849, 'wa'=>-12838, 'wai'=>-12831, 'wan'=>-12829, 'wang'=>-12812, 'wei'=>-12802, 'wen'=>-12607, 'weng'=>-12597, 'wo'=>-12594, 'wu'=>-12585, 'xi'=>-12556, 'xia'=>-12359, 'xian'=>-12346, 'xiang'=>-12320, 'xiao'=>-12300, 'xie'=>-12120, 'xin'=>-12099, 'xing'=>-12089, 'xiong'=>-12074, 'xiu'=>-12067, 'xu'=>-12058, 'xuan'=>-12039, 'xue'=>-11867, 'xun'=>-11861, 'ya'=>-11847, 'yan'=>-11831, 'yang'=>-11798, 'yao'=>-11781, 'ye'=>-11604, 'yi'=>-11589, 'yin'=>-11536, 'ying'=>-11358, 'yo'=>-11340, 'yong'=>-11339, 'you'=>-11324, 'yu'=>-11303, 'yuan'=>-11097, 'yue'=>-11077, 'yun'=>-11067, 'za'=>-11055, 'zai'=>-11052, 'zan'=>-11045, 'zang'=>-11041, 'zao'=>-11038, 'ze'=>-11024, 'zei'=>-11020, 'zen'=>-11019, 'zeng'=>-11018, 'zha'=>-11014, 'zhai'=>-10838, 'zhan'=>-10832, 'zhang'=>-10815, 'zhao'=>-10800, 'zhe'=>-10790, 'zhen'=>-10780, 'zheng'=>-10764, 'zhi'=>-10587, 'zhong'=>-10544, 'zhou'=>-10533, 'zhu'=>-10519, 'zhua'=>-10331, 'zhuai'=>-10329, 'zhuan'=>-10328, 'zhuang'=>-10322, 'zhui'=>-10315, 'zhun'=>-10309, 'zhuo'=>-10307, 'zi'=>-10296, 'zong'=>-10281, 'zou'=>-10274, 'zu'=>-10270, 'zuan'=>-10262, 'zui'=>-10260, 'zun'=>-10256, 'zuo'=>-10254 ); //全部拼音 public function getAllPY($chinese, $delimiter = '', $length = 0) { $py = $this->zh_to_pys($chinese, $delimiter); if($length) { $py = substr($py, 0, $length); } return $py; } //拼音首个字母 public function getFirstPY($chinese){ $result = '' ; for ($i=0; $i<strlen($chinese); $i++) { $p = ord(substr($chinese,$i,1)); if ($p>160) { $q = ord(substr($chinese,++$i,1)); $p = $p*256 + $q - 65536; } $result .= substr($this->zh_to_py($p),0,1); } return $result ; } //-------------------中文转拼音--------------------------------// private function zh_to_py($num, $blank = '') { if($num>0 && $num<160 ) { return chr($num); } elseif ($num<-20319||$num>-10247) { return $blank; } else { foreach ($this->pylist as $py => $code) { if($code > $num) break; $result = $py; } return $result; } } private function zh_to_pys($chinese, $delimiter = ' ', $first=0){ $result = array(); for($i=0; $i<strlen($chinese); $i++) { $p = ord(substr($chinese,$i,1)); if($p>160) { $q = ord(substr($chinese,++$i,1)); $p = $p*256 + $q - 65536; } $result[] = $this->zh_to_py($p); if ($first) { return $result[0]; } } return implode($delimiter, $result); } } //-------------------------中文转拼音结束--------------------------------// //中文是双字节,所以需要两个字节连接起来(ASCII码的范围是在161-255) $c = '齐秦'; for($i=0; $i<strlen($c); $i++) { echo ord($c[$i]).' ';//198 235 199 216 } echo '<br>',chr(198).chr(235).chr(199).chr(216),'<br>'; //测试 $PingYing = new GetPingYing(); echo '<br>',$PingYing->getFirstPY('羽泉乐队,歌不错-推荐'),'<br>';//yqldgbc-tj echo $PingYing->getAllPY('羽泉乐队,歌不错-推荐'),'<br>'; //yuquanleduigebucuo-tuijian ?> |
数组被作为排序函数的参数,排序以后,数组本身就发生了改变,函数的返回值为bool类型。
2 函数名中出现单a表示association,含义为,在按值排序的过程中,保持key=>value的对应关系不变
3 函数名中出现单k表示key,含义为,在按值排序的过程中按照数组key而不是数组的值排序
4 函数名中出现单r的表示reverse,含义为,按照跟不加r的相反的顺序排列
5 函数名中出现单u的表示user-defined,含义为,使用用户自定义函数排序,如果函数的逻辑是参数1<参数2返回负数,则按照升序排列(p1小2返负升)。
--------------------sort函数升序排序--------------------------------
代码如下 | 复制代码 |
bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] ) <?php $fruits = array("lemon", "orange", "banana", "apple"); sort($fruits); var_dump($fruits); ?> 结果: array 0 => string 'apple' (length=5) 1 => string 'banana' (length=6) 2 => string 'lemon' (length=5) 3 => string 'orange' (length=6) |
--------------------rsort降序排列--------------------
代码如下 | 复制代码 |
<?php $fruits = array("lemon", "orange", "banana", "apple"); rsort($fruits); var_dump($fruits); ?> 结果: array 0 => string 'orange' (length=6) 1 => string 'lemon' (length=5) 2 => string 'banana' (length=6) 3 => string 'apple' (length=5) |
---------------asort按照二维数组值的升序排列(保持key=>value的关联关系)-----------
代码如下 | 复制代码 |
<?php $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); asort($fruits); var_dump($fruits); ?> 结果: array 'c' => string 'apple' (length=5) 'b' => string 'banana' (length=6) 'd' => string 'lemon' (length=5) 'a' => string 'orange' (length=6) |
--------------arsort按照二维数组值的降序排列(保持key=>value的关联关系)--------------
代码如下 | 复制代码 |
<?php --------------------ksort按照数组的key升序排列-------------- <?php$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); |
---------------------krsort按照数组key的降序排列--------------------------------
代码如下 | 复制代码 |
<?php array |
----------------usort函数按照用户自定义的函数排序----------------
代码如下 | 复制代码 |
<?php $a = array(3, 2, 5, 6, 1); usort($a, "cmp"); var_dump($a); |
-----------------uksort使用自定义函数按照数组的key排序-----------------
代码如下 | 复制代码 |
<?php $a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4); uksort($a, "cmp"); var_dump($a); |
-------------------uasort将数组用自定义函数按照value排序,保持索引关系不变---------
代码如下 | 复制代码 |
<?php // Array to be sorted // Sort and print the resulting array |
-------------------array_multisort排序多个数组或多维数组---------
代码如下 | 复制代码 |
<?php array_multisort($ar[0], SORT_ASC, SORT_STRING, |
1 => int 3
2 => string '2' (length=1)
3 => int 2
4 => int 1
//说明:
1 上例中:$ar数组优先按照$ar[0]的字符串值升序排列,如果字符串值相等,再按照$ar[1]数组的数字值降序排列。
2 array_multisort函数的任意一个位置的参数如果是数组,表示排序时用的值,
如果有多个数组参数,优先按照前边的数组值进行排序,如果是常量,例如
SORT_ASC, SORT_DESC, SORT_REGULAR,SORT_NUMERIC, SORT_STRING.
表示排序方法(数组取值前优先)。
在php页面缓存主要用到的是ob系列函数,如ob_start(),ob_end_flush(),ob_get_contents(),但是更高级的缓存是不使用这些函数的,本文章最后一个实现就有讲到,大家可参考一下。
ob_start():页面缓存开始的标志,此函数一下的内容直至ob_end_flush()或者ob_end_clean()都保存在页面缓存中;
ob_get_contents():用来获取页面缓存中的内容,获取到以后呢,我们就可以想怎么处理这些内容都行了,过滤字段啦,匹配内容啦,都可以~~~ :)
ob_end_flush():表示页面缓存结束。并且经我验证,缓存的内容将输出到当前页面上,也就是可以显示缓存内容。
用此三个php函数,就可以实现强大的功能。如果数据库查询量较大,可以用cache来解决这个问题。
下面是编码部分。
1.初始化函数,一般是设置页面缓存路径、缓存文件命名格式等,可按个人喜好自定义。这里用到的识别ID是经加密的$_SERVER[REQUEST_URI]参数。这个函数中最后还有一个if判断:若未过缓存期,则加载缓存文件,否则加载源文件。
代码如下 | 复制代码 |
function page_init() |
2.页面缓存函数,这里使用到一个技巧:在缓存文件的内容中加上一个头部信息--过期时间,所以每次只需要对头部中的过期时间和当前时间进行比较(在page_init()函数中进行)就能判断缓存是否过期了。
代码如下 | 复制代码 |
|
3.函数使用,注意这两个函数有先后执行顺序,还有别忘了ob_start()
代码如下 | 复制代码 |
|
例2
下面做个示例来说明PHP页面缓存技术:
代码如下 | 复制代码 |
<?php function cache_start($_time, $dir) function cache_end($dir) cache_start($_time, $dir); |
例
利用生成文件做缓存
代码如下 | 复制代码 |
<?php class Esj_Cache{ public function __construct($cache_foldername,$cacher_time=100) public function read_cache() }catch(Exception $e){ //测试缓存文件夹是否存在 //建立一个新的文件夹 //读取缓存文件 } } //返回文件的名字 //建立缓存文件 // 取得缓存中的所有文件 //删除缓存中的所有文件 } ?> |
相关文章
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
- 其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
- 本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
- 一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
- 微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
- 小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
- 这篇文章主要介绍了c# 线程同步的相关资料,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...2020-08-29
php导出csv格式数据并将数字转换成文本的思路以及代码分享
php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07- ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
- 本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
- 1. MySQL数据库主从同步延迟原理。要说延时原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作,主库对所有DDL和DML产生binlog,binlog是顺序写,所以效率很高,slave的Slave_IO_Running线程到主库取日...2013-10-04
- 这篇文章主要介绍了vue项目,代码提交至码云,iconfont的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-30