查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 
 
 
 

客户端(浏览器端)数据存储技术概览

2017-3-15 14:37:25 阅读414 评论0 152017/03 Mar15

在客户端(浏览器端)存储数据有诸多益处,最主要的一点是能快速访问(网页)数据。(以往)在客户端有五种数据存储方法,而目前就只有四种常用方法了(其中一种被废弃了):

CookiesLocal StorageSession StorageIndexedDBWebSQL (被废弃)[fc_lamp: 在基于WebKit 的浏览器是支持 sqllite操作]Cookies

Cookies 是一种在文档内存储字符串数据最典型的方式。一般而言,cookies 会由服务端发送给客户端,客户端存储下来,然后在随后让请求中再发回给服务端。这可以用于诸如管理用户会话,追踪用户信息等事情。

此外,客户端也用使用 cookies 存储数据。因而,cookies 常被用于存储一些通用的数据,如用户的首选项设置。

Cookies 的 基本CRUD 操作

通过下面的语法,我们可以创建,读取,更新和删除 cookies:

// Create

document.cookie = "user_name=Ire Aderinokun";

document.cookie = "user_age=25;max-age=31536000;secure";

// Read (All)

console.log( document.cookie );

// Update

document.cookie = "user_age=24;max-age=31536000;secure";

作者  | 2017-3-15 14:37:25 | 阅读(414) |评论(0) | 阅读全文>>

正则表达试分组语法(?xxx)

2017-1-4 10:32:57 阅读193 评论0 42017/01 Jan4

常用分组语法分类代码/语法说明捕获(exp)匹配exp,并捕获文本到自动命名的组里(?<name>exp)匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)(?:exp)匹配exp,不捕获匹配的文本,也不给此分组分配组号零宽断言(?=exp)匹配exp前面的位置(?<=exp)匹配exp后面的位置(?!exp)匹配后面跟的不是exp的位置(?<!exp)匹配前面不是exp的位置注释(?#comment)这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读

来源:

作者  | 2017-1-4 10:32:57 | 阅读(193) |评论(0) | 阅读全文>>

一个字母数组,需要转成每三个字母一组

2016-3-17 23:49:01 阅读204 评论0 172016/03 Mar17

此需求,如果不知道PHP str_split方法,则需要循环处理数组自行组装。实际上使用 str_split方法很简单。

$letters = implode('',$letters);

$letters = str_split($letters,$groupn);

即可。

返回指定列,返回ID列。

array_column

此函数作用非常大,再也不用foreach去处理了,但需要php.5.5版本的支持。

$records = array(

    array(

        'id' => 2135,

        'first_name' => 'John',

        'last_name' => 'Doe',

    ),

    array(

        'id' => 3245,

        'first_name' => 'Sally',

        'last_name' => 'Smith',

    ),

    array(

        'id' => 5342,

作者  | 2016-3-17 23:49:01 | 阅读(204) |评论(0) | 阅读全文>>

隐藏HTML 元素 知多少

2016-2-20 23:23:41 阅读271 评论0 202016/02 Feb20

一说起CSS隐藏元素,我想大部分小伙伴们都会想到的第一种方法就是设置display为none。这是最为人所熟知也是最常用的方法。我相信还有不少人想到使用设置visibility为hidden来隐藏元素,这种方式也是常用的方法,而且也有很多人知道两者的不同。除了这两种方法,本文还总结了一些比较不常用的方法,比较了这几种“隐藏”元素方法的区别和优缺点,欢迎大家交流!!

几种方法的简单介绍

首先我们分别来说说到底有哪几种隐藏元素的方法,有一些方法是众所周知的,还有一些算是一种技巧。

display:none

设置元素的display为none是最常用的隐藏元素的方法。

1

2

3

.hide {

display:none;

}

将元素设置为display:none后,元素在页面上将彻底消失,元素本来占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘。

visibility:hidden

设置元素的visibility为hidden也是一种常用的隐藏元素的方法,和display:none的区别在于,元素在页面消失后,其占据的空间依旧会保留着,所以它只会导致浏览器重绘而不会重排。

1

2

3

.hidden{

visibility:hidden

}

visibility:hidden适用于那些元素隐藏后不希望页面布局会发生变化的场景

作者  | 2016-2-20 23:23:41 | 阅读(271) |评论(0) | 阅读全文>>

PHP 纠正(旋转)图像(片)倒置问题

2016-1-11 15:47:33 阅读524 评论0 112016/01 Jan11

 一 先简单说说图像(片)的旋转问题

   当你用手机以某种角度拍照时,图片也是以某种角度旋转了(用IHPONE查看图片时,IHPONE自动帮你纠正了照片,android 则不会)。图片的旋转角度信息是存放在图片的exif数据包里,参数为 Orientation。其值如下表:

旋转角度参数0°1顺时针90°6逆时针90°8180°3

二 PHP处理,我们需要使用exif_read_data 函数来获取图片的exif信息,然后使用imagerotate 函数来旋转图片。

三 具体实现:

/**

* 修正(旋转图像)

* @param $imgPath 图像路径

* @param $degrees 旋转角度

* @internal

* @author fc_lamp

*/

function correctImageAngle($imgPath,$degrees=False)

{

$ext = '';

if($degrees===False)

{

//则直接看图像是否倒置了,

if(!function_exists('exif_read_data'))

{

//exif_read_data 能获取图像中所有exif信息

作者  | 2016-1-11 15:47:33 | 阅读(524) |评论(0) | 阅读全文>>

正则表达式集合

2016-1-9 20:52:24 阅读295 评论0 92016/01 Jan9

一、校验数字的表达式

1 数字:^[0-9]*$

2 n位的数字:^\d{n}$

3 至少n位的数字:^\d{n,}$

4 m-n位的数字:^\d{m,n}$

5 零和非零开头的数字:^(0|[1-9][0-9]*)$

6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$

8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$

9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$

11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$

13 非负整数:^\d+$ 或 ^[1-9]\d*|0$

14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

作者  | 2016-1-9 20:52:24 | 阅读(295) |评论(0) | 阅读全文>>

关于登录页

2016-1-9 1:47:17 阅读373 评论0 92016/01 Jan9

我们会骂 12306 的网站界面挫,效果差,速度慢,回头看看自己写的代码,是不是也一样的狗血!在前端,很多看似简单的东西,内藏无数玄机。本文将以一个小小的登陆框为入口,谈一谈如何完善自己的程序。

在很多人眼里,前端就是 DIV+CSS+JQuery,甚至还有些人停留在 table 布局的迷雾当中(这些人应该跟 IE6 一样,随着历史渐渐被尘封)。但,前端绝不是你所看到的那样。举个例子,登录页面几乎是每一个系统不可或缺的模块,很多娴熟的人可以在一刻钟之内写好一个登录页面,两个 input,一个提交 button,万事 OK。

Username: <input type="text" /><br />

Password: <input type="password" /><br />

<input type="sbumit" />

当然,作为一个完成登录验证的页面,这几个元素完全可以胜任,但我只能说你完成了一个可以用的页面,这种页面完全没有用户体验可言,完全不符合一个具有的严谨的思维的程序员的作风!

一、一切以良好用户体验为基础1、视觉效果

界面的设计就不用多说了,一般情况这个属于美工的活儿,这里要谈的是几个最基础的点。

第一,你的页面兼容性如何?各个元素的长宽、行高等在不同浏览器上是否表现一致,如果这个都没有保证,那一定是不合格的。

作者  | 2016-1-9 1:47:17 | 阅读(373) |评论(0) | 阅读全文>>

PHP 平均计数器

2014-12-13 0:45:49 阅读431 评论0 132014/12 Dec13

需求如下:

有一个数字记录集,总共 1506 ,现在要求某段时间内前的80s内,数字要被运行到1000,其后时间段内均衡减少到0(即到最后时间时,数字记录集刚好被执行完)。

纯PHP算法1( 源自:@Yittyer):

/**

* 数定跳动算法

* @param number $sp

* @return number

*/

private function c_num($sp=80,$to=1000,$totalNum=1506,$start_time='时间戳',$stop_time='时间戳')

{

if(time () < $start_time)

{

return 0;

}

//$sp秒内

$rest=time()-$start_time;

if($rest<=$sp){

$cn=intval(($to/($sp*$sp))*$rest*$rest);

}else{

//$sp秒后

//总时长

$totalTime=$stop_time-$start_time;

作者  | 2014-12-13 0:45:49 | 阅读(431) |评论(0) | 阅读全文>>

计算机中的 0.58 问题

2013-11-5 14:05:19 阅读505 评论0 52013/11 Nov5

在PHP、Python 算数运算中,你肯定遇到过这样的情况:

#PHP代码

var_dump(intval(0.58*100)); #输出: 57

#Python代码

print int(0.58*100) #输出57

为什么0.58*100 运算整型化后不是58而是57,这还得从浮点数在计算机中的存储说起:

浮点数在计算机中以二进制的除法表示. 比如, 十进制的:

0.125

其值为 1/10 + 2/100 + 5/1000, 同样, 以二进制表示则为:

0.001

其值为 0/2 + 0/4 + 1/8. 这两种表示法的值是一样的, 唯一的区别是, 前者以十进制表示, 而后者则以二进制表示.

不幸的是, 大多数的十进制小数都无法严格的以二进制来表示. 一个结果就是, 普遍来说, 你输入的十进制的小数, 通常只是以接近的二进制数表示.

在十进制中这个问题很容易理解. 考虑分数 1/3 . 你可以用一个接近的十进制数表示:

0.3

要更一些,

0.33

更好一些,

0.333

等等. 但是不管你怎么写, 都不是严格的等于 1/3, 但是可以使结果更接近于 1/3.

同样, 无论你用了多少位, 二进制的数也无法精确表示十进制的 0.1 . 在以二为底的情况下, 将是个无限循环

0.0001100110011001100110011001100110011001100110011...

作者  | 2013-11-5 14:05:19 | 阅读(505) |评论(0) | 阅读全文>>

1 为什么 0=='a'

   下面的几个IF判断语句中,哪几个是True?

<?php

if(0==='a')

{

echo "0==='a'<br/>";

}

if(0=='a')

{

echo "0=='a'<br/>";

}

if('0'=='a')

{

echo "'0'=='a'<br/>";

}

if(0=='a1')

{

echo "0=='a1'<br/>";

}

if(111=='111a')

{

echo "111=='111a'";

}

仔细读了手册,你就知道答案了:

1)  如果比较一个数字和字符串,则字符串会被转换为数值并且比较按照数值来进行。

2)  如果比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。

3) 此规则也适用于 switch 语句。

关于字符串转为数值,当一个字符串被当作一个数值来取值,其结果和类型如下:

1)如果该字符串没有包含 '.','e' 或 'E' 并且其数字值在整型的范围之内(由

作者  | 2013-10-1 0:41:11 | 阅读(557) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 

有道博客搜索

 
 
 
 
 
 
 

四川省 成都市

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 

日志分类

 
 
日志分类列表加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
 
留言列表加载中...
 
 
 
 
 
 
 
博友列表加载中...
 
 
 
 
 

小工具

 
 
模块内容加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

登录  
 加关注