最近项目中涉及到Tw***er, 需求要使用PHP更新Tw***er中的状态, 自动加上链接地址并且链接地址要通过bit.ly进行简化.
什么是Bit.ly?
Bit.ly是一个短网址服务, 根据原网址生成一个新的较短的网址, 由于微博客发言有字数限制, 所以短网址服务在微博客中广为应用.
使用PHP调用bit.ly api有很多方法, 这里只简单提供一个例子, 详细文档和例子请登陆http://bit.ly自行查找.
使用bit.ly api首先要注册一个账户, 注册完之后会得到一个api key, 有了api key我们才能合法使用bit.ly的api, api key在个人资料中.下面是txt格式调用api的函数.
注: 打开url读取内容需要开启php的allow_url_fopen选项.
function make_bitly_url ($url, $login = 'm4ker',
$api_key = 'R_04354c1e3500db9f43f1fedaf234****') {
return file_get_contents(
'http://api.bit.ly/v3/shorten?login='.$login
.'&apiKey='.$api_key
.'&uri='.urlencode($url)
.'&format=txt');
}
把公司以前用symfony1.2做的一个项目上传到测试服务器上会出现配置文件解析错误,把除了error_reporting之外的所有配置注释掉就会好用,找个很久也没找到原因。
最后没办法开始重写配置, 终于发现原因, 原代码如下:
dev:
.settings:
error_reporting: < ?php echo (E_ALL | E_STRICT) ^ E_NOTICE ^ E_DEPRECATED ."\n" ? >
web_debug: on
cache: off
no_script_name: off
etag: off
default_culture: ja
问题就是由于 E_DEPRECATED 常量导致的,这个常量是5.3之后才添加的, 所以在5.3以下版本的php就会出现常量未定义的错误,导致配置文件解析错误,E_DEPRECATED是一些不推荐使用(也可以说是即将废弃的)的函数错误, 因为程序是在5.2下开发的, 升级至5.3错误异常的多, 所以屏蔽此错误。
解决办法,去掉E_DEPRECATED常量或者进行defined()处理。
概要
本文介绍了git format-patch提交更新的替代方案,使用类似CVS的提交和更新来代替现在正使用的操作相对麻烦的format-patch。
如何创建一个CVS模式的公共库?
确保用户组git已存在,确保开发人员在git组中
chgrp -R .git git # 将.git改为git组
chmod -R 775 .git
cd .git&&chmod 664 config description index&&chmod 777 HEAD
通过以上命令就创建了一个CVS模式的公共库,可以方便的使用push和pull来进行操作。
从远程服务器192.168.9.9的/var/proj/project目录检出项目到project目录下
git clone maker@192.168.9.9:/var/proj/project project
每个用户clone项目之后需要设置身份
git config –global user.name “maker” # 改成自己的
git config –global user.email “makerwang@gmail.com” # 改成自己的
已检出项目不需要做任何修改,在必要情况下设置身份即可。
PUSH
在本地提交(commit)后,使用git push来将本地的(这里指每个开发者独立检出的项目)修改提交到公共库中。
切记,使用push命令提交之后再对公共库进行修改之前要把公共库切换到最新版本
PULL
使用git pull来进行项目的更新,提交前最好使用pull来将项目更新至最新,否则将无法进行push操作。
如果两人同时修改了同一行代码,pull操作将提示冲突”both modified”,通过git status查看冲突,人工解决冲突并将解决冲突后的文件再次进行提交,然后再进行push操作。
在给arch的最近一次更新中,发现git push命令无法正常执行,报错
![remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to ‘xxx.xxx.xxx.xxx:xxx/xxx/xxxxx/xxxxxx’
这是由于git默认拒绝了push操作,需要进行设置,修改.git/config添加如下代码:
[receive]
denyCurrentBranch = ignore
在需要使用该功能的目录下创建.gitattributes文件并在.gitattributes中添加ident属性:
* ident
这样在任何文件中都可以使用$Id$来显示当前文件最后修改的版本号。
如果项目是从svn或者其他版本控制系统移植过来的可能文件中已经有了版本信息,比如
/*
* $Id: abcdefghijklmn $
*/
象这样的版本信息git会自动识别并替换成git下的版本,当然前提是这个文件有过修改或者提交。
其实这个问题很久之前遇到过, 应该是没解决, 当时的情况是openoffice打开正常而excel打开不正常, 后来也没解决了, 只能把编码转了.
这次又遇到这个问题了, 在网上一番寻找, 在一篇java的文章里找到了原因, 是由于输出的CSV文件中没有BOM.
什么是BOM?
在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。
那么如何在PHP中输出BOM呢?
在所有内容输出之前
print(chr(0xEF).chr(0xBB).chr(0xBF));
原文地址: http://foolbird.net/1517.html