Category: 技术文档
-
非常有用的css伪类
div>ul:first-child{}选择第一个元素 div>ul:last-child{}选择最后一个元素 :nth-child()选择某个元素的一个或多个特定的子元素;你可以按这种方式进行选择: :nth-child(length);/*参数是具体数字 length为整数*/ :nth-child(n);/*参数是n,n从0开始计算*/ :nth-child(n*length)/*n的倍数选择,n从0开始算*/ :nth-child(n+length);/*选择大于length后面的元素*/ :nth-child(-n+length)/*选择小于length前面的元素*/ :nth-child(n*length+1);/*表示隔几选一*/ 具体使用时乘号(*)不用写,比如 li:nth-child(2n+1) :nth-of-type(odd) /*偶数个*/ :nth-of-type(even) /*奇数个*/
-
how to use godaddy custom php.ini(如何在godaddy上修改php.ini文件)
Today I was find godaddy can change php.ini for self website, that's a suprise for me. I was write a php soft to crawl a mother website , and used multithreading, but the problem is time out. I find more website and they write more , but the same question , how to us custom…
-
中国的免费svn
和很多的开发人员一样,我在家里的时候会写一些自己的东西,但是这些都是一些测试代码,但是我们很希望可以保存。svn是我们用的比较多的。所以我们需要一个免费的svn,因为我们的测试代码没有收入,也不愿意为此花费。我在网上找了很多svn提供商。免费的空间太少了。百度云什么的虽然便宜,但是相对来说还是要我们付费的。有人说google code 可以有。但是google现在在中国有时候是打不开的,很纠结。今天有了新的发现,免费容量有1GB,够用了。 地址是:http://www.svnchina.com/ 大家不妨试试
-
php fsockopen post data (模拟Post提交)
网上有很多的代码,但是实际上就只有一个,于是乎我一直认为他们是对的,花了一个上午的时间去理顺这个问题,最后我还是在国外的网站上看到了真确的答案,跟大家分享一下: fsockopen页面代码: $fp = fsockopen("example.com", 80); $vars = array( "hello" => "world" ); $content = http_build_query($vars); fwrite($fp,"POST /reposter.php HTTP/1.1\r\n"); fwrite($fp,"Host: example.com\r\n"); fwrite($fp,"Content-Type: application/x-www-form-urlencoded\r\n"); fwrite($fp,"Content-Length: ".strlen($content)."\r\n"); fwrite($fp,"Connection: close\r\n"); fwrite($fp,"\r\n"); fwrite($fp, $content); header("Content-type: text/plain"); while (!feof($fp)) { echo fgets($fp, 1024); } 接受post数据页面的代码: print_r($_POST); 这个是我的fsockopen页面的代码: $domain="127.0.0.1"; $dport="8087"; $vars=array("content"=>"ff"); $post_data=http_build_query($vars); $fp=fsockopen($domain,$dport,$errno,$errstr,1); if($errno!=0) { die("not connect the host");…
-
图片在div中上下居中显示并自适应宽高
对于图片如和在div中上下居中的问题困扰了偶很多年,今天终于狠下心来把它彻底搞定(实际上是因为Mackes不是专业前端,所以很少用到,经常忘记,网上有没个我喜欢的)。 在网上你会看到有用三层div通过浮动居中的,也有直接写了个dislay:table-cell;的。要么太复杂,要么没有全部适应。 下面我来讲解一下我的方法。 大家知道,在table中 只要在td上设置了 vertical-align:middle;就可以做到这一点。可是div中不行。这到底是为什么呢? 也许大家都知道table被div淘汰的原因,是因为table自带的一些样式太庞大了,页面加载的同时会同步加载样式,导致table布局的页面加载很慢。而div则只只带了一个很简单样式 display:block;。其他的样式是可以通过css样式异步加载的。 OK,因为在table中实现了我们想要的效果,那么我们可以先写个简单的table来看看这个时候table用了哪些样式使得图片可以上下居中。 然后,我用了谷歌浏览器来查看“审查元素”,有些说我用firebug可以不?答案是NO。因为谷歌浏览器的“审查元素”功能会把元素的默认样式也说明的很清楚,但是你用firebug就只能看到自己定义的,而不能看到元素的默认样式。 通过查看发现<tr>中有一个display:table-row;样式,之前我一直以为它的默认样式是display:table-column;,那会不会就是这个table-row;起的作用呢?因为网上有人用table-cell;。Just try it ! <div id="tr" style="display:table-row;height:100px;"> <div id="td" style="display:table-cell; vertical-align:middle;"><img src="your-image-url.gif"/></div> </div> Ok !That all ! 测试成功了,哈哈! 原来就这么简单。 在网上你会看到 只用了talbe-cell,这个样式是table中最小单位的样式,你可以理解成 table中的td。可以在“审查元素”时发现<td>中默认就有这个样式,而<tr>中有 table-row 这个样式。table-row 就像是table中的tr一样控制了整行样式,可以联想到:行、行高;对就是跟高度有关。 所以说:以上的两个div 就像当于是table中的tr和td(看示例代码中的ID值)。但是没有用到table的庞大样式,而且我们所用的是div,所以不会对加载速度产生影响。 如果你想同时左右居中,那就用text-align:center;就可以了(这个其实不需要说明大家都知道)。 同样的像table一样,如果是多个这样的div就只要这样写: <div id="tr" style="display:table-row; height:100px;"> <div id="td" style="display:table-cell; vertical-align:middle;"><img src="your-image-url.gif"/></div> <div id="td1" style="display:table-cell; vertical-align:middle;"><img src="your-image-url.gif"/></div> <div id="td2" style="display:table-cell; vertical-align:middle;"><img src="your-image-url.gif"/></div> <div id="td3"…
-
How to use trim for c#.net when its null
How to use trim for c#.net when its null ? More body will tell you that //============================ string txt=null; string mystring=""; if(txt!=null){ mystring=txt.Trim(); } //============================ OK,you know,some times we have more string need to check when form submit . This is too tired . We all need a easy way for us . let me show…
-
mysql的一些语句
右补0:select RPAD(id,8,'0') as pad from tablename; 左补0:select LPAD(id,8,'0') as pad from tablename; 字符串连接:update tableName set title=CONCAT(‘abc’,title,’def’) WHERE id=1 字符串截取【一】:select left(title,50) from tablename 字符串截取【二】: select substring(title,5) as newTitle from tablename select substring(title,5,100) as newTitle from tablename 字符串截取【三】:select substring_index(title,'@') as newTitle from tablename
-
设计的颜色[color for desinger]
-
PHP用mysql数据库存储session
大部分使用php的人一旦应用到session都会使用cookie。 cookie虽好可是它也会给我们带来一些隐患的。 隐患一:如果客户端机器的cookie一旦因病毒而失效了,那么session也就相当于没有了。 隐患二:session在php中默认的是以文件的形式保存在一个临时文件夹里面的,对于一个小型系统来说,这样做完全可以, 可是对于一个大型而又被经常访问的系统来说,就不是很好的办法了。假设这个网站一天有1000个人访问。一个月以后session的临时文件夹就会有30000个临时文件。想象一下计算机要从30000里面找一条session_sid是一个多么漫长的事情呀! 因此为了提高效率。 交易使用用数据库保存session。具体方法如下: 1.更改php.ini文件。 由于php默认保存session的方式是files所以我们要改变它。即:找到“session.save_handler = files”将“files”改为“User”。 把session的模式改成用户自定义的。 2.建立数据库: CREATE TABLE `db_session` ( `sesskey` char(32) NOT NULL, `expiry` int(11) unsigned NOT NULL, `value` text NOT NULL, PRIMARY KEY (`sesskey`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 数据库表明:db_session 列名:sesskey,expiry,value 其中:sesskey为主键。 Value里面存放着session里面的值。 3.建立session_mysql.php文件。这个文件是用来构造保存session的方法的。修改一下参数直接使用就可以了。 session_mysql.php 复制PHP内容到剪贴板 PHP代码: <?php $gb_DBname="db_myBBS";//数据库名称 $gb_DBuser="root";//数据库用户名称 $gb_DBpass="23928484";//数据库密码…
-
ThinkPHP 上传提示没有选择上传文件
首先请看清楚提示,如果你确保没有上传文件,但是又要保存数据时请使用一下方法: 因为我们再修改某条数据时,有可能只是改变了某个数据的文字信息,而其他的不想改变,这个时候如果有UploadFile方法就会报出:“没有选择上传文件”。Ho,No,我就是不想改变图片信息,那怎么通过呢?没关系其实很简单 找到ThinkPHP的包,找到UploadFile.class.php 一般路径是 ThinkPHP/Extend/Library/ORG/Net/UploadFile.class.php 找到文件的第186行,这里做了一个判断 if(!empty($file[‘name’])) {…………….} 对,这个就是判断有没有上传文件的。然后在这个if判断的后面加上如下红色部分代码 if(!empty($file[‘name’])) {…………….} else{ $fileInfo[] = null; $isUpload = true; } 这样如果上传文件是空的话也不会爆错,只是会返回一个空值。 然后我们在接收 $picInfo = $upload->getUploadFileInfo(); 时如果print_r($picInfo) 就会输出 Array([0]->) 对因为我测试的时候只是上传一张图,如果是多张图的话应该输出的是 (多张图都是空的) Array([0]-> [1]-> [2]->……) (中间有一张图不是空的) Array([0]-> [1]->Array(……) [2]->……) 好了,现在明白了吗?这样我们就可以在保存数据时判断了 $data=M('news'); if(count($picInfo[0])>0){ $data->PIC_1=$picInfo[0][‘savename’]; } if(count($picInfo[1])>0){ $data->PIC_2=$picInfo[1][‘savename’]; } 以此类推。 好了,问题解决了,希望我的小小发现能给大家带来点好处。