actInit.yaml
225: { type: 225, total: 60, daylimit: { 2010-1-28: 20, 2010-1-29: 20, 2010-1-30: 20, 2010-2-01: 20  } }
226: { type: 226, total: 60, daylimit: { 2010-1-28: 20, 2010-1-29: 20, 2010-1-30: 20, 2010-2-01: 20  } }


yaml_prase.php

<?php

    require_once "spyc.php";
    $content = @file_get_contents("./actInit.yaml");
    $yaml = Spyc::YAMLLoad($content);
    print_r( $yaml );

?>


输出array的结果如下,符合多维数组的输出要求:

Array
(
    [225] => Array
        (
            [type] => 225
            [total] => 60
            [daylimit] => Array
                (
                    [2010-1-28] => 20
                    [2010-1-29] => 20
                    [2010-1-30] => 20
                    [2010-2-01] => 20
                )

        )

    [226] => Array
        (
            [type] => 226
            [total] => 60
            [daylimit] => Array
                (
                    [2010-1-28] => 20
                    [2010-1-29] => 20
                    [2010-1-30] => 20
                    [2010-2-01] => 20
                )

        )

)
<?php
    require_once "spyc.php";
    $content = @file_get_contents("./actInit.yaml");
    $yaml = Spyc::YAMLLoad($content);
    print_r( $yaml );

?>
house:
   family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] }
   address: { number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 }


Array
(
    [house] => Array
        (
            [family] => Array
                (
                    [name] => Doe
                    [parents] => Array
                        (
                            [0] => John
                            [1] => Jane
                        )

                    [children] => Array
                        (
                            [0] => Paul
                            [1] => Mark
                            [2] => Simone
                        )

                )

            [address] => Array
                (
                    [number] => 34
                    [street] => Main Street
                    [city] => Nowheretown
                    [zipcode] => 12345
                )

        )

)


阅读全文
http://blog.sina.com.cn/s/blog_4a654272010007d1.html阅读全文

来源:
http://www.w3school.com.cn/php/func_string_chr.asp


八进制为什么以0开头,十六进制为什么以0X开头?这个是计算机编程语言里面的约定。大部分计算机高级语言涉及到这里都是遵循一样的标准,以便于区分。
马上上手:
注释:ascii 参数可以是十进制、八进制或十六进制。通过前置 0 来规定八进制,通过前置 0x 来规定十六进制。

<?php
echo chr(52);//十进制没有什么开头
echo chr(052);//八进制以0开头
echo chr(0x52);//十六进制就以0x开头
?>输出:

4
*
R

为此,同样的52输出不同的结果字母,看是简单,还是仍然需要注意一下,偶尔会犯大错的,呵呵!
来源:http://www.39g.com/html/kaifa/262/2009/10/011415616641.htm阅读全文
<?php                    
                  
$user = ""; //数据库用户名                    
$password = "";//数据库密码                    
$db_name = "i";//数据库名                    
                  
$link = mysql_connect("localhost:3306",$user,$password);                    
mysql_select_db("$db_name",$link);                    
echo "<p>正在清空数据库,请稍等....<br>";                    
$result=mysql_query("SHOW tables",$link);                    
while ($currow=mysql_fetch_array($result)) {                    
mysql_query("drop TABLE IF EXISTS $currow[0]");                    
echo $currow[0]."<br>";                    
}                    
echo "<br>恭喜你清理MYSQL成功<br>";                    
?>

阅读全文
本机:windows XP
VM6:CentOS5.5

Step1:本机 ipconfig /all ,获得ip,子网掩码,网关和DNS。
Step2:填入CentOS5.5的network,如下图。
点击在新窗口中浏览此图片
#IP要是整冲突了,我把你手剁了!!!

Step3:执行下面的命令
echo -e "nameserver 首选DNS\nnameserver 备用DNS" >> /etc/resolv.conf
如,
echo -e "nameserver *.*.*.*\nnameserver *.*.*.*" >> /etc/resolv.conf

Step4:ping baidu.com看是否能通讯
如果能,说明设置正确;如果不能,说明echo那条命令输入错误,比如 -e和后面的双引号之间要有一个空格。

如果命令输入错了,就执行下面的命令,覆盖一下,

echo -e "nameserver 202.106.0.20\nnameserver 203.196.0.6" > /etc/resolv.conf


现在只是临时能上网~~虚拟机重启后便不能了,还需要更改一个文件~

Step5:
ls /etc/sysconfig/network*
vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加,如下内容(三行),
IPADDR=*.*.*.*
NETMASK=*.*.*.*
GATEWAY=*.*.*.*
#数字自己填,你不会真的给我写上星星吧,当心你的手指头 _ _!

Step6:重启虚拟机,可以上网了!
成功的人生,首先要找到做人做事的起点,我们可以把这个起点称之为“1”。这个“1”,包括经济意义上的“1”和社会意义上的“1”。经济意义上的“1”,就是俗称的“第一桶金”,是干干净净、结结实实的本钱。社会意义上的“1”,就是做人的本份、做人的良知和常识。经济意义上的“1”好找,找到以后还可以添上若干个“0”,积累巨大的财富。但是社会意义上的“1”很难守住,一旦守不住,就会丢掉本份,迷失本性,忘了自己是谁,忘了自己从哪里来,这就危险了。人是会随着财富的增长、身份的变化有所改变的,但有些常理、本份的东西永远不应改变。 阅读全文
众所周知,IT应用即是企业业务核心。如今,有90%的关键性业务处理是通过IT系统来完成的。在整体业务的背后,如果没有IT应用程序来驱动每个业务的进行,那你根本就不可能进行创建、下订单,送货,雇佣雇员或进行记账的任何一个行为了。因此,我们可以很清楚地看到IT应用和质量、性能对于业务交易是至关重要的。阅读全文
我想显示1到5的所有数字,以下代码可以

#!/bin/sh
for i in 1 2 3 4 5
do
echo $i
done
那么我想显示1到100的数字呢。用for 循环该怎么写?

#!/bin/sh
for i in `seq 1 100`
do
echo $i
done


shell中循环取出文件中每一行赋予一变量的问题,試試:
cat a.txt | while read aa
do echo $aa
done


阅读全文
http://www.eb163.com/club/thread-1708-1-1.html
1.PID是一种闭环控制系统,根据控制量的实际值与设定的偏差来计算下一步的控制量;P使输入与输出成一种比例关系,I则
是对控制过程偏差的积分,使系统朝偏差减小的方向行进,最终达到消灭静差的目的,D则是用在有滞后和较大惯性的系统控
制中,而温度控制就是这样的,微分项可以“预测”误差变化的趋势,所以减小超调、消除震荡就靠它了。

2.算法选用位置式,数据类型用unsigned int
    很多资料上都推荐增量式,但这样一来必须选用float;用unsigned int的话,如果温差的差变化不大,大多数情况积分
项会被省咯,用定点数,则就得用double。
    而位置式则无此问题,个人理解,增量式积分在最终输出项了,即先乘积分系数,后积分,位置式则相反,所以选用位
置式用定点数损失不大。
    51单片机不适合用float、double;资源消耗太大了。

3.要想使波动范围小,那么数据输入精度非常重要
    如果输入的温度值精度为1度,想达到 -1度的控制精度,是不可能的,最少也得0.1度左右,有些资料推荐在计算前给温
度值*10,输出时再/10,这样做基本没什么作用,仅仅是方便了计算;基于温差变化而计算,若迟迟得不到温差变化,又怎
么能计算呢。

4.温度控制的范围也很重要
    也就是在用unsigned int、用定点数时,若控制的温度范围很大时,计算时会产生溢出,若选好范围即可解决,如控制
的范围为0-300度,其实根据位置式公式计算,温差在40度左右系统才会减小输出功率,那么我们在温差在40度之内后才开始
用PID控制,之前全功率加热,这样减小了数据量,也减轻了无效的计算,当然不能忘了温差为负数时,也要限制温差计算范
围,范围之外的关闭输出。

5.参数的整定很累人
    一定要按先比例后积分,再微分,同时要作好记录、分析,不要想着为节省三个系数都先给个经验值,再同时调,结果
很可能欲速则不达,本人已经有过教训了;最后当你对系统的加热过程越了解,也就越接近完成了。
PID的改良算法有很多,必要时要采用。

晓奇大侠是这方面的高手,他有一篇文章关于PID对我帮助很大,非常感谢他的帮助,我这里说的那里基本都说过。呵呵。
欢迎大家批评指正,我对PID也是只知皮毛,了解也很肤浅。
零、linux使用grep删除空行:


一、Vscode和Sublime的 正则一样的,选中.*那个正则标识,然后输入:
^[ \t]*\n    #表示以空格或者\t制表符0次或者多次后并且还是以\n换行符结尾的这些内容给找出来

^[ \t]*\n    
^\s*\n       #输入时注意框里可能$前面有一个空格,导致无法匹配到空行。此问题经实践多次发现。
^\s*$\n    


Macbook上Vscode采用option+command+F,打开查找。

VS Code插件介绍(七)懒人插件-Hungry Delete & hungry-backspace,注意只是批量删除不要的空行:
Hungry Delete ,作者jasonlhy 目前下载量1000都不到。
Hungry-backspace,作者eklemen,目前下载量只有一点点。
这两个插件功能一样,绑定按键都有冲突,需要的同学,只要选其一安装就行了。
安装:
请搜索Hungray Delete或者hungry-backspace
配置:
两个插件都不需要配置
使用:
使用上两个略有区别。 除了直接按backspace按键自动清理空白区域之外,Hungry Delete多了一个Ctrl+backspace(Win/Linnux),Alt+Backspace(Mac)的功能。具体使用,大家可以自己玩下。


二、[实践OK]vim刪除空白行,刪除沒有內容的空行,刪除包含有空格組成的空行。
vim中:
:g/^[ \t]*\n/d  
和:
:%s/^[ \t]*\n//g  
的区别是?
答:
这两个 Vim 命令都涉及到删除空白行的操作,但使用了不同的命令和方法:
1. `:g/^[ \t]*\n/d`
   这个命令使用了全局(`g`)命令,对于匹配正则表达式 `^[ \t]*\n` 的每一行执行删除操作(`d`)。正则表达式的含义是以零个或多个空格或制表符(`[ \t]*`)开头,后面跟一个换行符(`\n`)。因此,这个命令会删除所有空白行。
2. `:%s/^[ \t]*\n//g`
   这个命令使用了替换(`%s`)命令,对于匹配正则表达式 `^[ \t]*\n` 的部分执行替换操作。替换为空字符串,表示将匹配的内容删除。正则表达式的含义与上面一样,匹配以零个或多个空格或制表符开头,后面跟一个换行符的内容。`%` 符号表示对整个文档执行替换操作,而 `g` 标志表示全局替换,会替换所有匹配。
总结区别:
- `:g/^[ \t]*\n/d` 使用了全局删除命令,逐行删除所有空白行。
- `:%s/^[ \t]*\n//g` 使用了全局替换命令,将匹配的内容替换为空字符串,实际上也是逐行删除所有空白行。
两者的效果是一样的,不同之处在于使用了不同的命令(删除 vs. 替换)。



刪除沒有內容的空行
g/^$/d

刪除包含有空格組成的空行
g/^\s*$/d

除以空格或tab開頭到結尾的空行
g/^[ |\t]*$/d


使用 global 命令删除空白行
Vim命令行模式下的 global 命令会在指定的范围内,标记所有匹配 pattern 的文本行,并对匹配的行上逐行执行 Ex 命令。
匹配空白行的正则表达式可以用 ^\s*$ 表示 ( ^ 表示行首, $ 表示行尾, \s 表示任何空白字符,包括空格、制表符、换页符等, * 表示匹配零次或多次)。
因此,使用 global 命令删除Vim打开文件中所有空白行的命令为 :g/^\s*$/d

三、删除file文件里所有#开头的行和空行并输出处理后的文本内容:
sed 删除空行:
sed '/^$/d' file.txt
abcdef adfd dfdf fdfd ab abc qqq
abcdef adfd dfdf fdfd ab abc qqq
abcdef adfd dfdf fdfd ab abc qqq




遇到一个比较大的文本文件需要去除空行,首先想到的自然是正则表达式。偷懒去网上找了几个删除空行的正则表达式,填到EditPlus里居然都不能用...而且大多数的正则表达式都用到了"\r",也就是回车符,关于"\n"和"\r"的区别我以后再写,今天只是为了记录一个正则表达式。

网上找的不行那就自己编吧,试验了几次最后写出一个能用的:

^[ \t]*\n


解释一下:
1、^表示一行的开头。空行嘛,肯定在一行的开头就是空的...

2、[ \t],"\t"前面还有一个空格。[]表示范围中的字符,里面写入空格和制表符(tab),因为空行可能是由空格和制表符构成。

3、*表示0次或任意次。也就是说这个空行可以没有空格或制表符,也可以有任意个前面[]里的字符。

4、\n就是换行符了。

这样在EditPlus里选择替换,然后勾选正则表达式,输入正则表达式,全部替换即可。不过EditPlus有个小bug,有时候不能一次替换完全,要多按几次"全部替换"才行...
最终写成:

^[ \t\n]*\n

好像这样就能一次全部删除了

方法二:
去掉所有的空行

搜索内容:\n\n
替换内容:\n

Ps:
<font size=2 >dfdfd</font>
可以通过正则表达式:

<font [^>]*>

匹配出来<font size=2 > ,Etc...
通过jQuery发送ajax请求,无论是get方式还是post方式,当前后两次请求的参数完全一样时,浏览器就有可能调用缓存里的数据,最直接的结果就是造成有些操作没有生效的假象。这种情况,我们应该通过下面这个技巧来避免浏览器调用缓存里的内容。


先整理下思路,浏览器之所以调用缓存里的内容,最主要的一点是判定现在要访问的内容和之前的是一样的,那我们解决这个问题的方法就明确了,怎么让前后两次的内容不一样。这里介绍的技巧是为查询请求增加一个随机的参数。



对于get请求:


url = "someurl.php?id=123";url += "&anticache=" + Math.floor(Math.random()*1000)$.get(url);

对于post请求:


parms = {   id : "123",   anticache : Math.floor(Math.random()*1000)}$.post("someurl.php", parms);


小结



编写脚本的过程中,发现应该为大多数请求添加随机参数,这样可以保证获取数据的实时性和准确性。

法二,加入参数:
jQuery的ajax使用很方面,我常用的有$.ajax,$.get,$.post,但可惜自己一直没有注意到$.get回来的内容会自动缓存,所以在这里记录下:

$.ajax不缓存版:

$.ajax({
  type:"GET",
  url:'test.html',
  cache:false,
  dataType:"html",
  success:function(msg){
  alert(msg);
}
});

由于$.get,$.post,比较简单.这里就不写了.有需要查看手册


當我們設定cache=false時,jQuery在我們每次發出Request時,會補上一個參數"_",而其內容是每次皆不同的亂數,這是Javascript端很常見的迴避Cache技巧
我是回忆未来[向东],我对回忆未来[张宴]的关于nginx那文章有点不同的看法,哈哈,不知道他要是看到这个说法,他会不会。。。,反正都是熟人,咱就写两行了,呵呵:
文章来源:http://blog.s135.com/nginx_php_v5/

我个人回忆未来[向东]认为(认为:当然包含了很主观的看法哈)Nginx性能大概是Apache的1.5倍左右(这个1.5是咋估计出来的呢?我是拍脑袋的咯,哈哈),所谓十倍,我估计(又接着主观了:()是回忆未来[张宴]是把并发数而不是负载能力做为了衡量性能的标准,这里值得探讨,同时注意:单纯并发数如果全是不活动的死连接没有什么意义的. epoll et模式实现简单的http server,每秒能处理11000个请求/s左右,apche如果参数充分优化,也可以达到8000请求/s左右,这个不能算作是nginx的功劳,而是Linux 的内核以及Unix的kqueque的内核的功劳,当然,以我为主,为我所用,无所谓了,瞎侃两句,呵呵.
分页: 176/271 第一页 上页 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 下页 最后页 [ 显示模式: 摘要 | 列表 ]