photoshop切图,7.0版即可输出为div切片
转载 PS切片导出为DIV+CSS布局
在修改好相应的文字与图象之后,我们就将PSD文件输出(X)HTML文件。
首先得先对PSD文件做切片,有两种方法:
①使用工具栏上的“切片工具”,

然后在图象上划出一块一块的区域。

②使用基于参考线的切片,按ctrl+R调出标尺栏,

把鼠标移动到标尺上,按住鼠标左键,移动到图象上,将会看到一条绿色的参考线,如图

将参考线;排好,然后点一下工具栏上的切片工具图表,然后点上面
选项栏里的“基于参考线的切片”。于是在原来的参考线上就变成了一块一块的切片了。

********************************************************************************
接下来就可以输出了:
①依次选择菜单栏上的“文件”→“存储为Web所用格式”→“存储”。
②接下来就会弹出一个“将优化结果存储为”的窗口。
在“保存类型”处有个下拉列框可以选择,因为我们要存储为网页的格式,所以选择“HTML和图象(* html)”,再选择“保存”就可以输出一个网页格式的HTML文件与一个包含图象的名为“images”的文件夹。
③如果我们需要输出“div+css的网页”我们还可以这么做:
在“设置”处的下拉列框,选择“其他”

就会弹出一个“输出设置”的窗口
在第2个下拉列框处选择“切片”,选择“生成CSS”,单击“好”→“保存”,就可以输出一个目前流行的“div+css”的HTML网页。

7.0就包含此功能
Continue reading 切图
报这种错误:PHP Parse Error: syntax error, unexpected $end。有两种可能:
1:
//$str .= "?>/n";
这种情况?>被认为是php结束标记,造成语法错误,解决办法看你自己的代码
2:
使用了短标记<? php code ?>但是没有在php.ini中配置 short_open_tag = On
3:
curly bracket 花括号{}缺失或不匹配
4:
php中类定义是不能被分段的,函数中分段除外。原文是:
as in PHP, a class definition cannot be broke up and distributed into multiple files, or into multiple PHP blocks, unless the break is within a method declaration.
Continue reading PHP Parse Error: syntax error, unexpected $end 解决方法
此文总结得较全面:
转自:http://hi.baidu.com/tian%C2%BD%C0%DA/blog/item/2569ba0337e15b034bfb5191.html
问题:You don't have permission to access / on this server.
说法一:hi.baidu.com/%D0%C7%BC%CA%C0%CB%D7%D31988/blog/item/449a1cfc676f7389b801a026.html
<Files ~>
AllowOverride AuthConfig FileInfo Indexs Limit Options
Order allow ,deny
Deny from all-----------------注意:就是这儿!!--->把这行去掉或注释掉就行!!!
</Files>
不过原httpd.conf文件中是没有这一段的。只有
<FilesMatch "^\.ht"> # 什么意思呢。匹配除.htt开头的文件?
Order allow,deny
Deny from all
</FilesMatch>
经查,这一段是属于服务器安全配置方面的。《php和mysql web开发》中写到:通过在httpd.conf中引入适当的指令,隐藏一些不希望被看到的文件。例如,要防止inc文件被看到,则:
<Files ~ “\.inc$”>
Order allow,deny
Deny from all
</Files>
上面文章还讲到怎么去解决错误的方法,值得借鉴。好了,继续说 403 forbidden
说法二:hi.baidu.com/hzw513/blog/item/ad85c0f56e5e0923bd310930.html
1、修改了httpd.conf中 documentRoot 的值;但没有修改下面不远处 <Directory "url"></Directory>中的url ;这个很好解决,直接改为一样,重启服务器就行了。
2、你没有访问这个目录的权限;不过这种情况windows下很少。一般多在linux下。 解决方法就是 chmod 701 /home/www ;如不行在参考其他情况。
不过以上都不是我遇到的情况。我的目录文件夹从ftp上下载下来。权限都是777的。所以没有这种情况。
说法三:hi.baidu.com/libk/blog/item/f9e32b34af4c90335ab5f5cd.html
经过以上验证后,确定不是以上问题。那么到底是什么原因呢。。。 忽然看到某个帖子的留言说“看apache日志” 忽然明白,到日志里面不就知道是什么问题了么! 说实话我挺笨的。
在 log/error.log中看到了
“Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: F:/www/”
这样一段话,于是搜之;得到如上解答:
1. 如果没有启用mod_rewrite,可以用Options None 来保证安全性。
2. 如果启用了mod_rewrite, 那么Options就一定要启用FollowSymLinks或者SymLinksifOwnerMatch, 否则会出现Fobidden页面禁止访问的错误。
查看错误日志会有这样的出错信息:(Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /location/to/your/rewrite/url)
查看 确认我的rewrite是打开的。可是options 却是 options indexes Multiviews ;于是改为 fllowsymlinks ;重启,真的就行了!
不得不说原来如此。要多看看log啊。options具体选项详解参见这里
Continue reading 【转】Forbidden关于无权限访问目录的问题
主页 http://codeigniter.com/
网上想要比较cakephp和CodeIgniter,答案是萝卜白菜各有所爱。
cakephp模仿ROR,没用过ROR的学习曲线要大些。
CodeIgniter适合小型项目,性能比较好,因为没有过多累赘。
cakephp中型项目,性能稍逊。但是特性较CodeIgniter多。
CodeIgniter文档较详细:
下载包中user_guide文件夹/index.html有,但是那个tablecontent一开始没注意到,它在页面顶部,点击出来下拉目录,囧。
照着文档读一遍,两个小时就够了,简单吧。
笔记:
以其index.php来作为你项目入口,
apache配置中需要配置文件夹
Options execCGI FollowSymLinks
AllowOverride All
默认连接方式是http://example.com/[controller-class]/[controller-method]/[arguments]
那么 http://example.com/news/latest/10 就会找到news这个控制器类调用其latest方法,传入10这个参数。
这个配置是在application/config/routes.php中
注意,例如这样的配置
routes[‘welcome’] = ‘welcome’
将会在controller中寻找welcome 文件夹中(或下面的controller子文件夹)的welcome.php文件中的Welcome类。文件名必须小写,类名必须以大写字母开头。
URL Helper类问题:
这里面的方法都是依据config.php中配置的$config['base_url']来的,
因此如果你配置的是abc.com,那么即使用户使用www.abc.com访问,返回的都是不带www的url,包括
current_url()这个方法也是如此,显然这个方法是个鸡肋,遇到ajax请求就跨域了,因为www.abc.com和abc.com是跨子域的。
异常处理:
他的异常在index.php中设置,不知道是什么原因,在其他地方再设置就没什么作用了,一旦出错就显示一堆错误,只能使用ob_end_clean();把它的输出清除掉。
日志:
system\libraries\Log.php log_message('level', 'message')
日志显示级别在config.php中配置
$config['log_threshold'] = 4;
$config['log_path'] = ''; //空表示在站点目录下logs文件夹中,以php为扩展名
CI有个session过期的bug,因为它是每隔一段时间更新session对应的cookie(这是为了安全起见),所以可能造成前后两个ajax请求的session对应的cookie不一样:
1:请求A调用时正好导致更新cookie
2:请求B此时还是使用老cookie,由于A请求改了cookie,则会导致找不到session。
参见:http://codeigniter.com/forums/viewthread/102456/
这上面也没好的办法,要么是注释更新cookie的代码,要么将$config['sess_time_to_update'] = 300;设置为很长就不会调用更新cookie的方法。
参见http://www.path8.net/tn/archives/2526
CI可通过数据库保存session,但是无论怎样,都是依赖客户端的cookie配合的,所以定时更新cookie的方法让session长期不过期的目标不好实现。
下面是自定义的Session类,CI可以自定义核心类:
user_guide/general/core_classes.html
放在application/core/即可,会自动加载的,要以MY_开头,要继承想要扩展的父类。
下面是MY_Session类:
><?php <?php
if (!defined('BASEPATH')) exit ('No direct script access allowed');
Continue reading CodeIgniter 入门https://www.twilio.com
对于开发者不很友好,虽然目前是注册就送30$,但是注册号码的话需要付费却不能从这里面扣。
可以通过verify number将你的美国号码绑定,这样打出去的号码将会使用你绑定的号码。
对于开发者来讲,还是后起之秀tropo好用。
rest api见http://www.twilio.com/docs/api/rest/
同样它也需要http 基本验证,用户名是账户sid(不是app sid),密码是token。
http://readthedocs.org/docs/twilio-php/en/latest/index.html
它也有类似phono的客户端https://www.twilio.com/docs/client
不只是因为我测试时就是生产环境的缘故,感觉sms上twilio还是要比tropo快很多。我测试tropo都是它免费的开发环境,感觉sms比较慢。
client部分:
用它提供的脚本地址,因为它的脚本里还具有自动更新client js脚本库版本的功能,需要解析src中的域名部分来获得新js的地址。
这个需要服务端配合,首先setup需要app sid和token,这个token是要依据权限创建的,直接使用它的php-helper来创建就比较简单。Twilio/Capability.php
其次对于需要接听电话的情况,客户端需要初始化一个agent id,这个是可以随便取的,但是与电话号码绑定的入口必须要知道这个agentid才能将会话转接到这个client。
https://www.twilio.com/docs/client/device
流程:
client 的connect会请求app的call, url
此时请求参数中caller会是client:agentid的形式。
此时如果想转接到真实电话,必须要制定dial节点的callid属性。
如果是直接打电话这个app的号码,也会请求app的call url
上面两个的direction参数都是inbound
如果是rest api方式发起outbound会话,被呼叫方接通电话后,也会请求app的call url,这时direction参数是outbound-api
好笑的是如果client发起的请求被转接到client本身时,这也是可以的,那就变成了自己和自己对话了。
下面是对于twilio和tropo使用的对比
http://pardner.com/2011/04/tropo-not-ready-for-prime-time-went-with-twilio/
作者最终选择的是twilio:
主要是tropo无声的丢失了信息而twilio却保证了不丢失。
REST API中查询所有买入的号码是 https://www.twilio.com/docs/api/rest/incoming-phone-numbers
Continue reading twilio杂记
之前使用navicat lite,感觉并不好操作,能使用mysql workbentch就用mysql workbentch,mysql workbentch要装.net,有的机器还装不好,而且在win7上ui不很好用。 但是现在才发现开源免费的heidisql操作很方便,速度很快。
介绍一下它的提示功能, 在sql编辑器中,打点号,就会出现自动提示了,表名,数据库名等等。
so good.
赶快试试吧.
Continue reading heidisql mysql工具介绍
使用sqlserver可使用update 加 from来进行多表带条件更新,但是mysql中要实现多表带条件更新是不能使用from的,其语法为如下例:
将列表放在update 之后即可。
Continue reading mysql update from
java请求https常常遇到证书问题,对于许多免费的自签名证书,需要手动导入到jdk keystore中去。见http://blog.ureshika.com/archives/400.html。
今天却遇到GEOTrust认证的证书也需要导入的问题。
浏览器里面看这个证书是由GEOTrust认证的,浏览器没什么问题,使用java请求就抛异常。
我们知道jdk是自带GEOTrust根证书的,照理说这个认证的证书就不需要导入了。网上搜了一下,大概的原因是:这个证书域名以*开头,jdk不能handle
http://jasig.275507.n4.nabble.com/SSL-Error-td1749567.html
是不是这个原因,我没细看。
还是将证书导入到keystore保险。
导入后要重启运行在此jdk上的程序才能起效。
Continue reading sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 纠结的java ssl请求
php的毫秒是没有默认函数的,它自带的是microtime,即微秒:
1 second = 1000 milli second = 1000,000 micro second = 1000,000,000 nano second
网上抄来抄去都是microtime自带的例子,返回的还是秒。
microtime() 返回 0.1111 131231秒,空白前部分是float形式的秒数 空白部分是秒的整数部分
故要得到毫秒:
ok, 看清楚了,不是那些拷来拷去的秒函数哦。
Continue reading php之毫秒
发短信:
有的号码是发不到中啊国的,找了半天原因才发现要换个大城市的号码较好。如芝加哥。
Continue reading tropo杂记
Pagination