Category: Study

PHP: require和require_once的区别

require_once()包涵是绝对路径 include() 和require() :语句包括并运行指定文件。 include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样,脚本会继续运行。 require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。 include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。 学习PHP的时候正好遇到这一块儿,网上搜到这篇文章觉得挺好,就转过来了。

C++ main:处理命令行参数

继续学习C++,,, 给main函数传递实参例子,自己写了一个小程序来测试一下,如下图所示。 这样,当我用命令 g++ main_with_arg.cpp -o main_with_arg 编译,然后 ./main_with_arg david -love i don\’t know 运行的时候,屏幕就会输出 说明第一个argc参数会记录传递给main的参数,然后第二个参数argv是一个字符串数组,会把每一个命令字符串都记录下来,当然,需要用到转义字符‘\’的时候还是要使用。 这里顺便测试了一下我的机器上,size_t的大小,看来跟int一样。

C++ 复合赋值操作符性能

继续学习C++。 看到+=, -=, *=, /=以及其他复合赋值操作符号的时候,虽然以前学C的时候老师就讲过:这种方式的速度比相应的 A = A + B, A = A * B要快,因为对于前一种方式,左操作数只取了一次。 这不,正好前几天用到了clock()这个函数,那写个demo来看看到底快多少,于是有了下图所示的代码。 用三个变量记录了一下从程序开始,到调用clock()时,这段期间的时钟周期数。 对于常量“CLOCKS_PER_SEC”则是指每一秒的时钟周期个数,POSIX系统一般都是1,000,000 程序对两种方法分别执行了20亿次的加法运算记时,结果如下图所示,直接打印的是时钟周期数,而不是秒,如果要得到秒,用这个数除以CLOCKS_PER_SEC即可。 从结果看出,两种方式,20亿次加法运算,时间都是4.9X秒,差别非常小。并且,有可能第一种方式快,有可能第二种方式快,平均下来1:1。也有可能是哪里疏忽了,导致结果不对。 单从这次结果来看,无甚差别。   goodbye.

ssh连接godaddy

在godaddy那里为网站添加了SSL,其实主要是买SSL它会送一个独立IP,共享IP太容易被封了(独立的貌似也挺容易。。)。添加以后发现ftp好像登录不上去了,于是想用SSH去访问,不然我咋传文件啊,去网站传太慢了。 在命令行输入命令以后,居然提示我 “This account is currently not available.” google了一下,发现是没有开启SSH。于是跑去godaddy,登录自己的账户,在web hosting下有一个SSH,就在这里激活。 但是它需要给你的手机发一个PIN码,你输入手机号的时候,记得加86,代表天朝~ 输入完以后,点激活,半分钟就会有一个电话打过来,告诉你3个数字,然后输入到相应位置,就OK啦。 号码好像是+0001901212

return -1 为何echo $? 是255

今天在看C++, 书上说在命令行输入 echo $? 可以访问main函数的返回值来查看系统状态。一般来说我们main不是返回0嘛,返回其他值就是告诉系统错误,返回就返回了,也没有去注意。 突然想看看return -1的时候系统状态值是不是真的-1,结果发现echo $?以后,显示的是255!不是-1! 上网google了一下,发现系统的状态值是0-255,然后,当然return -1 再echo $?的时候就是255啦,同理如果返回-2的话就是254啦。 算是一个小知识。。记录一下~~~~~~        

Linux改变文件目录字符集编码

最近遇到一个问题,就是把文件从windows通过SSH上传到linux服务器以后,在web页面浏览这些文件的时候,中文出现乱码。 到处搜搜,解决了,记录一下,方便以后要用的时候好找。大致是因为windows使用的GBK来编码中文字符,而linux用的是utf-8吧,所以只要转换一下格式就行了,于是搜了一下命令。 命令格式:convmv -f [原始编码] -t [目标编码] -r(目录循环)  –notest(实际改变,否则只是测试) [操作路径、文件] 如: convmv -f GBK -t UTF-8 -r –notest  upnp-related/  将  当前目录/upnp-related/下所有的目录和文件名由GBK改为UTF8格式。 如下图所示 然后再在web页面访问的时候就不是乱码啦