预览模式: 普通 | 列表

LNMP安装及配置目录一览

A4纸网页打印——宽高设置

一、在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch)指标。 经过我仔细的测试,发现了网页打印中,默认采用的是96dpi,并非传闻的72dpi 。

A4纸张的尺寸是210×297mm,按1英寸=25.41mm换算,即8.264×11.688英寸 。所以,A4纸96dpi下的分辨率是794×1123,这就是我们在制作网页的时候需要的象素。

但是打印机是无法满幅打印的,总要有页边距,所以我们在制作网页的时候必须减去页边距。 


以下是我测试的各种页边距下,A4纸对应的象素尺寸: 
 

  1. 打印页边距设定为 0mm 时,网页内最大元素的分辨率:794×1123

    查看更多...

    Tags: html

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 363

 

一、场景

今天做保存专题商品列表的时候发现,前端明明有2300多条数据,但是实际服务端接受存入数据库才166条

 

二、解决过程

经过调试发现前端页面提交post请求时数据量是正确的,但到服务端只能接受到166条。

一开始以为是post请求长度超过限制,不过看了下请求内容才200多K,而post请求默认支持8M以内的数据传输。

于是怀疑可能是php内部配置导致的,后来百度了下果不其然发现max_input_vars这个配置项,该配置项是在php 5.3.9版本之后才加入的,目的是为了防止hash冲突

既然如此那就改下该配置项,默认是1000,改成10000;重启服务后发现服务端获取到的数据量是1666,是之前的10倍,正好也是配置项调整之后的倍数。

然而前端传的数据量是不确定的,就算把max_input_vars设置成10万,也有可能不够用,还是另寻他法吧。

 

三、最终解决方法

1、前端将数组转换成json传输,即JSON.stringify(goodsList)

2、服务端接收到并解析$goodsList = json_decode($_POST['goodsList'], true);

3、测试发现前端传过来的数据服务端都能获取到,问题圆满解决

 

 

解决PHP使用POST提交数据不完整,数据不全的问题

在后台form中,通过ajax请求返回了一个有很多input的form表单,提交数据后,要格式化数组时发现提交过来的数据不完整。
 
 
 
PHP从5.3.9开始 php.ini 增加一个变量 max_input_vars 用来限制提交的表单数量
 
该值默认情况下是1000 , 将此值改大一点就OK了!

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 458

 利用array_search与array_column实现二维数组查找,不用自己写个循环,减少工作量。

PHP代码
  1. <?php   
  2. $userdb = array(  
  3.     0 => array(  
  4.             'uid' => 100,  
  5.             'name' => 'Sandra Shush',  
  6.             'url' => 'urlof100'  
  7.         ),  
  8.    
  9.     1 => array(  
  10.             'uid' => 5465,  
  11.             'name' => 'Stefanie Mcmohn',  
  12.             'pic_square' => 'urlof100'  
  13.         ),  
  14.    
  15.     2 => Array(  
  16.             'uid' => 40489,  
  17.             'name' => 'Michael',  
  18.             'pic_square' => 'urlof40489'  
  19.         )  
  20. );  
  21.    
  22. $found_key = array_search(40489, array_column($userdb'uid'));  
  23. /** 
  24.     如果$userdb很大,建议使用一个变量,避免搜索每个元素时都调用array_column() 
  25.     $uid = array_column($userdb, 'uid'); 
  26.     $found_key = array_search(40489, $uid); 
  27.  */  
  28. var_dump($found_key);  
  29.    
  30.  ?>  

 array_search() 函数在数组中搜索某个键值,并返回对应的键名。

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。
 
在 PHP 4.2.0 之前,函数在失败时返回 null 而不是 false。
 
如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。
 
PHP array_column() 函数
array_column() 返回输入数组中某个单一列的值。

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 410

php限制几点到几点

 public function get_curr_time_section()

{
    $checkDayStr = date('Y-m-d ',time());
    $timeBegin1 = strtotime($checkDayStr."10:00".":00");
    $timeEnd1 = strtotime($checkDayStr."22:00".":00");
 
    $curr_time = time();
 
    if($curr_time >= $timeBegin1 && $curr_time <= $timeEnd1)
    {
        return 0;
    }
    return -1;
}
 

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 371

移除IIS默认的响应头

 在IIS+ASP.NET的运行环境,默认情况下会输出以下的响应头(Response Headers):

那如何移除这些响应头呢?下面我们来一个一个移除。

1. 移除Server

借助IIS URL Rewrite Module,添加如下的重写规则:

<rewrite>
        <allowedServerVariables>
            <add name="REMOTE_ADDR" />
        </allowedServerVariables>            
        <outboundRules>
            <rule name="REMOVE_RESPONSE_SERVER">
                <match serverVariable="RESPONSE_SERVER" pattern=".*" />
                <action type="Rewrite" />
            </rule>
        </outboundRules>
</rewrite>

重写规则存放在C:\Windows\System32\inetsrv\config\applicationHost.config中。

添加到webserver下

2. 移除X-AspNet-Version

在web.config的<httpRuntime>中添加enableVersionHeader="false":

<httpRuntime enableVersionHeader="false" />

3. 移除X-AspNetMvc-Version

在 Application_Start() 中添加如下代码:

protected void Application_Start()  {      MvcHandler.DisableMvcResponseHeader = true;  }

4. 移除X-Powered-By

在IIS Manager的HTTP Response Headers中移除X-Powered-By:

PHP不发送 X-Powered-By 头的方法:

修改 php.ini 文件,将 expose_php 设为 Off

Tags: iis

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 465

Notepad++正则替换日志

 第一步:

\n([^,])*,
替换为
\r\n
第二步:

,([^\r])*\r\n?

替换为
\r\n

Tags: 正则表达式

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 454

php连接access数据库的示例代码

 php连接access数据库的示例代码:

PHP代码
  1. <?php  
  2. $connstr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=".realpath("C:\Program Files\Att2008\att2000.mdb");  
  3. $conn = odbc_connect($connstr"""", SQL_CUR_USE_ODBC);  
  4.    
  5. $issuetime = date("Y-m-d H:i:s");  
  6. $sql = "select * from CHECKINOUT where USERID=2";  
  7. $query = odbc_exec($conn$sql);  
  8. while ($row = odbc_fetch_array($query)) {  
  9.     $dt = $row["USERID"];  
  10.     $checktime = $row["CHECKTIME"];  
  11.     if($checktime < "2011-5-18 13:35:02") {  
  12.         echo $checktime;  
  13.     }  
  14. }  
  15.    
  16. ?>  

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 536

 

JavaScript代码
  1. $(function(){  
  2.     //遍历获取的input元素对象数组,绑定click事件  
  3.     var len = $("input[type='file']").length;  
  4.     for(var i = 0; i < len; i++){  
  5.         $("input[type='file']").eq(i).click(function(){  
  6.             $(this).next().val("");  
  7.             $(this).next().hide();  
  8.             $(this).css("width","200px");  
  9.         })  
  10.     }  
  11. }  

jQuery获取:

jQuery.parent(expr),找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class")

jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素

jQuery.children(expr),返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点

jQuery.contents(),返回下面的所有内容,包括节点和文本。这个方法和children()的区别就在于,包括空白文本,也会被作为一个jQuery对象返回,children()则只会返回节点

jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点

jQuery.prevAll(),返回所有之前的兄弟节点

jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点

jQuery.nextAll(),返回所有之后的兄弟节点

jQuery.siblings(),返回兄弟姐妹节点,不分前后

jQuery.find(expr),跟jQuery.filter(expr)完全不一样:

jQuery.filter(),是从初始的jQuery对象集合中筛选出一部分,而

jQuery.find(),的返回结果,不会有初始集合中的内容,比如$("p").find("span"),是从<p>元素开始找<span>,等同于$("p span")

JS获取:

JavaScript代码
  1. var chils= s.childNodes;  //得到s的全部子节点  
  2. var par=s.parentNode;   //得到s的父节点  
  3. var ns=s.nextSibling;   //获得s的下一个兄弟节点  
  4. var ps=s.previousSibling;  //得到s的上一个兄弟节点  
  5. var fc=s.firstChild;   //获得s的第一个子节点  
  6. var lc=s.lastChild;   //获得s的最后一个子节点  

JS获取节点父级,子级元素:JS的方法会比JQUERY麻烦很多,主要则是因为FF、谷歌浏览器会把你的换行也当作DOM元素:空的text元素,目前IE也是这样

XML/HTML代码
  1. <div id="test">  
  2.   <div></div>  
  3.   <div></div>  
  4. </div>  

查看更多...

Tags: javascript jquery

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 366

Dreamweaver正则清除<P>标签属性

 查找:<p ([^>]*)>替换为<p>即可,其它标签同理。

Tags: dreamweaver

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 447

php防刷新代码

当用户在您的网站上提出过多请求时,该脚本将重定向用户。
 
服务器可以打印消息“警告:连接过多”,如果一个用户在短时间内提出了太多请求,那么其他用户将无法查看您的站点,这是一个非常普遍的问题。
 
将此代码粘贴到标头代码的开头,在任何MySQL连接或其他php代码上方:
 
PHP代码
  1. <?php   
  2. if (!isset($_SESSION)) {  
  3.     session_start();  
  4. }  
  5. // anti flood protection  
  6. if($_SESSION['last_session_request'] > time() - 2){  
  7.     // users will be redirected to this page if it makes requests faster than 2 seconds  
  8.     header("location: /flood.html");  
  9.     exit;  
  10. }  
  11. $_SESSION['last_session_request'] = time();  
  12. ?>  
 
 
确保目标页面“ flood.html”不包含任何mysql连接代码或其他可能会使服务器超载的代码,最好使用纯页面。在其上放置一个注释,例如“请在请求之间等待2秒”。
 
分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 347

主流web2.0网站的配色参考方案

 

 
 
Shiny silver [#EEEEEE]
 
 
 
Reddit white [#FFFFFF]
 
 
 
Magnolia Mag.nolia [#F9F7ED]
 
 
 
Interactive action yellow [#FFFF88]
 
 
 
Qoop Mint [#CDEB8B]
 
 
 
Gmail blue [#C3D9FF]
 
 
 
Shadows Grey [#36393D]
 
 

Bold

 
 
Mozilla Red [#FF1A00]
 
 
 
Rollyo Red [#CC0000]
 
 
 
RSS orange [#FF7400]
 
 
 
Techcrunch green [#008C00]
 
 
 
Newsvine Green [#006E2E]
 
 
 
Flock Blue [#4096EE]
 
 
 
Flickr Pink [#FF0084]
 
 

Muted

 
Ruby on Rails Red [#B02B2C]
 
 
 
Etsy Vermillion [#D15600]
 
 
 
43 Things Gold [#C79810]
 
 
 
Writely Olive [#73880A]
 
 
 
Basecamp Green [#6BBA70]
 
 
 
Mozilla Blue [#3F4C6B]
 
 
 
Digg Blue [#356AA0]
 
 
 
Last.fm Crimson [#D01F3C]
 

Tags: 网页设计

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 491

 广告位

↑返回顶部↑