Linux umask限制导致php的mkdir 0777无效

这两天在写一个缓存模块,需要把生成的缓存目录和文件设置成777权限,好让ftp用户可以直接登录删除缓存,蛋疼的事也就这么发生了,明明用了mkdir($path, 0777);用ftp用户登录却删除不了,为什么呢?   查看了一下建立的目录的权限,发现mkdir建立的目录权限都是755的,我明明用的是777,立马google了一下,才知道原来是受Linux 系统的 umask限制了,Linux的umask默认值是0022,所以php 的 mkdir 函数只能建立出755权限的文件夹出来。   小Tips:查看Linux的umask值直接在终端输入命令umask就可以看到   解决方法: $oldmask = umask(0); mkdir("test", 0777); umask($oldmask); 原文:http://stackoverflow.com/a/3997671/4009148… Read More

搞定网页打印自动分页问题

设计过程出现一个困难问题,一个php生成的HTML页面有多个表格,要求必须自动分开打印到几张A4纸张上面.经过询问资深人士,结果统一回答,HTML页面无法做打印时自动分页面打印.于是乎正准备放弃这个分页面打印念头,郁闷着被笑话着被困扰着. 一个表格被分开打印到两张A4上,多难看啊…. 无意中翻阅CSS,发现里面有两语句:page-break-beforepage-break-after 分别对应的 参数是: auto; always; left; right; 于是尝试建立一张HTML,如下 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>分页测试</title> <style type="text/css">… Read More

美国城市 Cities Array :: An array of USA cities, as of April 2010

array( 'ALABAMA'=> array('ABBEVILLE','ADAMSVILLE','ADDISON','AKRON','ALABASTER','ALBERTVILLE','ALEXANDER CITY','ALEXANDRIA','ALICEVILLE','ALLGOOD','ALTOONA','ANDALUSIA','ANDERSON','ANNISTON','ARAB','ARDMORE','ARGO','ARITON','ARLEY','ASHFORD','ASHLAND','ASHVILLE','ATHENS','ATMORE','ATTALLA','AUBURN','AUTAUGAVILLE','AVON','BABBIE','BAILEYTON','BANKS','BAY MINETTE','BAYOU LA BATRE','BEAR CREEK','BEATRICE','BEAVERTON','BELK','BENTON','BERRY','BESSEMER','BILLINGSLEY','BIRMINGHAM','BLACK','BLOUNTSVILLE','BLUE MOUNTAIN','BLUE RIDGE','BLUE SPRINGS','BOAZ','BOLIGEE','BON AIR','BRANCHVILLE','BRANTLEY','BRENT','BREWTON','BRIDGEPORT','BRIGHTON','BRILLIANT','BROOKSIDE','BROOKWOOD','BRUNDIDGE','BUTLER','BYNUM','CAHABA HEIGHTS','CALERA','CAMDEN','CAMP HILL','CARBON HILL','CARDIFF','CAROLINA','CARROLLTON','CASTLEBERRY','CEDAR BLUFF','CENTER POINT','CENTRE','CENTREVILLE','CHALKVILLE','CHATOM','CHELSEA','CHEROKEE','CHICKASAW','CHILDERSBURG','CITRONELLE','CLANTON','CLAY','CLAYHATCHEE','CLAYTON','CLEVELAND','CLIO','COALING','COFFEE SPRINGS','COFFEEVILLE','COKER','COLLINSVILLE','COLONY','COLUMBIA','COLUMBIANA','CONCORD','COOSADA','CORDOVA','COTTONWOOD','COUNTY LINE','COURTLAND','COWARTS','CREOLA','CROSSVILLE','CUBA','CULLMAN','DADEVILLE','DALEVILLE','DAPHNE','DAUPHIN ISLAND','DAVISTON','DAYTON','DEATSVILLE','DECATUR','DEMOPOLIS','DETROIT','DODGE… Read More

MySQL 临时表

MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。   临时表在MySQL 3.23版本中添加,如果你的MySQL版本低于 3.23版本就无法使用MySQL的临时表。不过现在一般很少有再使用这么低版本的MySQL数据库服务了。 MySQL临时表只在当前连接可见,如果你使用PHP脚本来创建MySQL临时表,那没当PHP脚本执行完成后,该临时表也会自动销毁。   如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表,当然你也可以手动销毁。   官方参考:http://dev.mysql.com/doc/refman/5.6/en/internal-temporary-tables.html 当 某些SQL命令在MySQL数据库中被执行的时候,它可能需要先创建一些内部的临时表来完成比较复杂的排序或分组查询。MySQL的临时表分为 in-memory 和 on-disk 两种。 如有可能,MySQL 总是首先使用 in-memory… Read More

使用CSS3改变文本选中的默认颜色

by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=1147 关于浏览器文字选中颜色 以我的系统举例(xp 默认主题),浏览器上页面文字选中后默认的背景色是一种蓝色, 不同浏览器的颜色有些许差异,但大致相同,文字颜色也近乎白色,如下图所示,截自Firefox3.6浏览器: 在 CSS3的爸爸妈妈还没有相亲认识的时候,要改变页面上文字选中后的背景色以及文字颜色,就跟让太监生孩子一样困难。但是,随着CSS3呱呱落 地,获得越来越多的浏览器认可,一切又显得那么自然而然。虽然有些顽固的糟老头(如IE浏览器)还不认可这个新生的CSS3,但是,丝毫不影响其在其他浏 览器上对UI的又一次改进。 目前Firefox、Safari、Chrome以及Opera浏览器都支持文本选择属性,如果浏览器不支持该属性,会直接忽略它,所以不会产生任何不良的影响。   下面就简单展示下这个改进UI体验的小技巧。 二、改变默认选中颜色 首先,简单点的例子,我们可以设置整个页面文本选中的基本样式,如下: ::selection {… Read More

bbPress 介绍,安装和中文包

bbPress 介绍 什么是 bbPress? bbPress 是 WordPress 母公司 Automaticc 出品的一款开源论坛程序,它是一个符合 Web 标准,非常容易使用的轻量级论坛程序,由于 bbPress 保持了体积小,重量轻,所以速度非常快。bbPress 没有提供过多复杂的功能,所以你要安装一个轻量型的论坛,bbPress 是很好的选择。   对于有更多需求的用户来说,bbPress 也和 WordPress… Read More

BuddyPress安装指南

WordPress的幕后公司Automattic近期收购了BuddyPress软件并打算将它作为一个社会化网络软件发布。建立在 WordPress 基础上的BuddyPress,是由 Andy Peatling创立,他希望大家能在BuddyPress上开始自己的网络社交,就像在Facebook上一样。今天我们来看看怎样安装 BuddyPress。 第一步:BuddyPress是什么? BuddyPress是一款建立在WordPress 多用户(MU)上的网络社交应用插件。 WordPress MU是支撑WordPress.com 系统的软件。 用户可通过WordPress MU在网站上建立自己的博客网站。 BuddyPress 为WordPress添加了大量新的社会互动功能。 这些功能可以一次性全部插入WordPress,也可以作为独立个体分别添加。 WordPress 博客 会员个人资料… Read More

有意思:textarea resize属性下纯CSS交互效果

一、众所周知的 众所周知,文本域(textarea)在FireFox或Chrome浏览器下,右下角有个可以拖拽的标志。 有人保留,有人嫌碍事,直接resize:none;掉,但是,估计没人利用整个儿做交互效果。 二、纯CSS的交互展示 您可以狠狠地点击这里:textarea resize下的纯CSS交互demo 例如,在FireFox浏览器下,拖动(往右→)下图圈中的图标: 一个半透明遮罩层随着拖动把张含韵给覆盖了,达到了半遮面的交互效果。 效果没什么,但是却完全CSS实现的,就有意思了。 三、实现原理 我们平时拖动文本域的时候,往右拖则文本域宽度往右侧扩展。但是,如果文本域右侧定位(浮动或绝对定位),则右侧不动,宽度往左侧扩展。下图演示为右100像素绝对定位:   我们还知道,textarea resize的时候宽度变化会让具有“包裹性”的父元素宽度跟着一起变化,所以,如果我们把textarea放在具有半透明背景色的层中,那拉伸的时候,这个半透明层不就可以拉拉伸伸,有了交互效果啦!这就是demo中半透明层覆盖来覆盖去的原理。 说得再多也不容易明白,demo中一些障眼的属性(overflow:hidden;、opacity:0;)去掉,你就知道大概了。下图为去掉overflow:hidden;以及文本域opacity设为0.6后的效果: 四、结束语 经测试,Opera/FireFox/Chrome浏览器支持,IE10以及下面的喽喽们都不支持。显然,兼容性是硬伤。因此,除了一些特殊情况,此实现没有多少实用价值。仅供大家娱乐,仅供大家参考。当然,您可以发挥你智慧实现其他一些交互。 唉,忧伤的三月,就这些,感谢阅读! 参考文章:Tricky Textarea… Read More

实现数据库实时更新 jQuery Timers 编辑

精选名称:JQuery Timers 授权模式:WTFPL 官方网页:http://jquery.offput.ca/every/ 官方展示:http://jquery.offput.ca/every/ 底端 有时候必需定时做一个动作,像是每n秒透过ajax发送讯息伺服器,取得更新资讯。 一般的方式是使用Javascript的原生计时器函式 clearInterval、clearTimeout、setInterval、setTimeout, 不过原生函式在使用上不太直觉,而且无法快速的 指定套用在某个特定的网页元素, 另外他的间隔单位是以毫秒去计算(1秒=1000毫秒),嗯…我想要每5分钟做一次, 那我要设 定…60*60*1000=3600000秒…对吧?还是360000秒? 这时候快从哆啦B梦口袋拿出了JQuery Timers这个法宝就能解决这麻烦的问题。 JQuery Timers提供了三个函式 1. everyTime(时间间隔,… Read More

jquery 特效专辑

提示框弹窗类 Facebox Facebox 是一个基于jQuery,Facebook-style的lightbox。能够展示示images,divs或者整个远程页面 。 Facebox SimpleModal SimpleModal是一个轻量级jQuery插件提供了一个简单的接口来创建模式对话框。 SimpleModal jTip jTip一个利用jQuery开发的提示工具。jTip通过HttpXMLRequest获取内容。用法简单,只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以。 jTip BetterTip 一个可以自定义Tooltip的jQuery插件。基于jTip,但比它来得更加灵活。 BetterTip clueTip clueTip这个jQuery插件方便您为链接或其它元素添加Tooltip功能。当链接包括title属性时,它的内容将变成clueTip的标题。clueTip中显示的内容可以通过Ajax获取,也可以从当前页面中的元素中获取。 clueTip jQuery lightBox… Read More

css hacks (ie6,ie7,ie8,firefox,Chrome)

IE6能识别下划线”_”和星号” * “,IE7能识别星号” * “,但不能识别下划线”_”, IE8能识别” \9″,但不能识别下划线”_”, 而firefox两个都不能认识,却可以识别‘!important’。等等 书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面列举常用的CSS hack方法 1:!important !important作用是提高指定样式规则的应用优先权。 IE7以及所有标准浏览器能识别!important 区别IE6与IE7与其他浏览器 .browserTest { border:20px solid #60A179 !important;… Read More