Windows7下使用IIS7与FastCGI模块配置PHP5.3.2
1.下载官网php-5.3.2-Win32-VC9-x86.zip压缩包
2.解压缩代码压缩包并配置
解压缩后将文件夹中的php.ini-development修改为php.ini,然后用文本编辑器修改以下内容
extension_dir = "D:\PHP程序文件目录\ext"
去掉;
extension=php_mysql.dll
extension=php_mysqli.dll
等扩展前面的分号注释,具体模块请根据自己的需要开启和关闭
date.timezone = "Asia/Shanghai"
上面这项是PHP5.3必须配置的项目,否则运行phpinfo时会出现Waring警告
CGI配置
fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
阅读全文…
许石南 技术
TCP/IP网络编程之四书五经
创建人:DearBook技术编辑 DearBook_Tech 查看/发表评论 本书评获得 0 D币
[本文发表于《程序员》杂志2003年第12期,作者孟岩]基于TCP/IP的编程格外重要。从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。高层的框架和控件总结了TCP/IP的主要使用模式,并且进行了抽象和封装,这固然非常好,但是想要真正掌握TCP/IP网络编程的真谛,恐怕需要认真学习下面几本著作。
阅读全文…
许石南 技术
http://hi.baidu.com/%BF%A7%E0%AC%C5%C92_0/blog/item/1ef4df09ab36079e0b7b8257.html
首先,当显示sh:grub的时候,敲入如下代码
ls,会显示当前硬盘分区的情况,像我的结果就是
(hd0) (hd0,1) (hd0,5) (hd0,6)
(hd0,1)是C盘,我把ubuntu安装在D盘,就是(hd0,5),其实只要知道有哪几个分区就行了,可以一个个试的,然后是下面的代码:
set root=(hd0,5) enter
loopback loop0 /ubuntu/disks/root.disk enter
set root=(loop0) enter
linux /boot/vmlinuz-2.6.31-14(TAB键补齐) root=/dev/sda5 loop=/ubuntu/disks/root.disk enter
initrd /boot/initrd.img-2.6.31-14(TAB键补齐) enter
boot enter
不出意外的话,ubuntu就能够正常启动了,启动之后终端中键入如下代码:
sudo update-grub2 enter
然后复制 /boot/grub/目录下的grub.cfg,到/host/ubuntu/install/boot/grub/目录下面,重启ubuntu应该就可以了
如果没有install下面没有boot文件夹的话,自己新建吧,我就是自己建的
许石南 技术
user表:
id | name
———
1 | libk
2 | zyfon
3 | daodao
user_action表:
user_id | action
—————
1 | jump
1 | kick
1 | jump
2 | run
4 | swim
sql:
select id, name, action from user as u
left join user_action a on u.id = a.user_id
result:
id | name | action
——————————–
1 | libk | jump ①
1 | libk | kick ②
1 | libk | jump ③
2 | zyfon | run ④
3 | daodao | null ⑤
分析:
注意到user_action中还有一个user_id=4, action=swim的纪录,但是没有在结果中出现,
而user表中的id=3, name=daodao的用户在user_action中没有相应的纪录,但是却出现在了结果集中
因为现在是left join,所有的工作以left为准.
结果1,2,3,4都是既在左表又在右表的纪录,5是只在左表,不在右表的纪录
阅读全文…
许石南 技术
在windows操作系统上使用IE作为浏览器时。常常会发生这样的问题:在浏览使用UTF-8编码的网页时,浏览器无法自动侦测(即没有设定“自动选择”编码格式时)该页面所用的编码。即使网页已经声明过编码格式:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
,由此造成某些含有中文UTF-8编码的页面产生空白输出。
如果使用的是Mozilla、Mozilla Firefox、Sarafi的浏览器这不会造成这个问题。这是由于IE解析网页编码时以HTML内的标签优先,而后才是HTTP header内的讯息;而mozilla系列的浏览器则刚刚相反。
由于UTF-8为3个字节表示一个汉字,而普通的GB2312或BIG5是两个。页面输出时,由于上述原因,使浏览器解析、输出<title></title>的内容时,如果在</title>前有奇数个全角字符时,IE把UTF-8当作两个字节解析时出现半个汉字的情况,这时该半个汉字会和</title>的<结合成一个乱码字,导致IE无法读完<title>部分,使整个页面为空百输出。而这个时候如果察看源文件的话,会发现实际上整个叶面全部已经输出了。
因此最简单的解决办法是在网页文件的<head></head>标签中一定要把字符定义<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
放在<title></title>之前。
本篇文章来源于 理想中国|www.LixiangZg.com 原文链接:http://www.lixiangzg.com/Design/css/200806/29190.html
许石南 技术 ie, utf8, 自动选择编码
<script type="text/javascript" language="javascript">
<!–
function TuneHeight(fm_name,fm_id){
var frm=document.getElementById(fm_id);
var subWeb=document.frames?document.frames[fm_name].document:frm.contentDocument;
if(frm != null && subWeb != null){
frm.style.height = subWeb.documentElement.scrollHeight+"px";
//如需自适应宽高,去除下行的“//”注释即可
// frm.style.width = subWeb.documentElement.scrollWidth+"px";
}
}
//–>
</script>
<iframe
onLoad="{TuneHeight(‘FM_Name’,'FM_Id’);}"
src="http://www.oyksoft.com" name="FM_Name"
id="FM_Id" width="800" marginwidth="0"
marginheight="0"
frameborder="0" scrolling="no">
</iframe>
许石南 技术 ie, iframe, 自适应
1, UCS-2 不等于 UTF-16。 UTF-16 每个字节使用 ASCII 字符范围编码,而 UCS-2 对每个字节的编码可以超出 ASCII 字符范围。UCS-2 和 UTF-16 对每个字符至多占两个字节,但是他们的编码是不一样的。
2, 对于 UCS-2, windows 下默认是 UCS-2LE。用 MultibyteToWidechar(或者A2W)生成的是 UCS-2LE 的 unicode。windows记事本可以将文本保存为 UCS-2BE,相当于多了层转换。
3, 对于 UCS-2, linux 下默认是 UCS-2BE。用iconv(指定UCS-2)来转换生成的是 UCS-2BE 的 unicode。如果转换windows平台过来的 UCS-2, 需要指定 UCS-2LE。
4, 鉴于windows和linux等多个平台对 UCS-2 的理解不同(UCS-2LE,UCS-2BE)。MS 主张 unicode 有个引导标志(UCS-2LE FFFE, UCS-2BE FEFF),以表明下面的字符是 unicode 并且判别 big-endian 或 little-endian。 所以从 windows 平台过来的数据发现有这个前缀,不用慌张。
5, linux 的编码输出,比如从文件输出,从 printf 输出,需要控制台做适当的编码匹配(如果编码不匹配,一般和该程序编译时的编码有若干关系),而控制台的转换输入需要查看当前的系统编码。比如控制台当前的编码是 UTF-8, 那么 UTF-8 编码的东西能正确显示,GBK 就不能;同样,当前编码是 GBK, 就能显示 GBK 编码,后来的系统应该更智能的处理好更多的转换了。不过通过 putty 等终端还是需要设置好终端的编码转换以解除乱码的烦恼。
许石南 技术 Linux, windows, 平台, 编码, 规则
http://blog.csdn.net/renren000/archive/2009/02/02/3857534.aspx
PHP中如何实现i18n?如果你和我一样,最近也在集中精力解决一个多语种的站点的建设问题,那么也许你已经在考虑这个问题的解决方法了,或者已经有了自己的解决方案。那么就来看看我的吧。
PHP手册中,有一个关于gettext函数的说明,是这样说的:
The gettext functions implement an NLS (Native Language Support) API which can be used to internationalize your PHP applications.
gettext函数实施了一个NLS(本地语言支持)API,可以用来国际化你的PHP应用。
我编程的一个原则是,如果有系统本身的函数,我是一定不会开发自己的函数的。所以我决定使用这个gettext函数来对我的站点进行i18n。
这是一个多语种的站点,因此根据用户的偏好(主要是语种设置)在界面上将显示相同内容但是不同语种的信息(缺省为英文)。例如:
//用户选择英文
Hello, today is July 29th, 2007.
//用户选择中文
你好,今天是2007年7月29日。
阅读全文…
许石南 技术 gettext, i18n, php
通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来下载,相信这个大家都会。那么用Content-Disposition设置下载的文件名,这个也有不少人知道吧。基本上,下载程序都是这么写的:
<?php$filename = "document.txt";header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename=' . $filename);
print "Hello!";?>
这样用浏览器打开之后,就可以下载document.txt。
但是,如果$filename是UTF-8编码的,有些浏览器就无法正常处理了。比如把上面那个程序稍稍改一下:
<?php$filename = "中文 文件名.txt";header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename=' . $filename);
print "Hello!";?>
把程序保存成UTF-8编码再访问,IE6下载的文件名就会乱码。 FF3下下载的文件名就只有“中文”两个字。Opera 9下一切正常。
阅读全文…
许石南 技术 php
<?php
$mimetypes = array(
‘ez’ => ‘application/andrew-inset’,
‘hqx’ => ‘application/mac-binhex40′,
‘cpt’ => ‘application/mac-compactpro’,
‘doc’ => ‘application/msword’,
‘bin’ => ‘application/octet-stream’,
‘dms’ => ‘application/octet-stream’,
‘lha’ => ‘application/octet-stream’,
‘lzh’ => ‘application/octet-stream’,
‘exe’ => ‘application/octet-stream’,
‘class’ => ‘application/octet-stream’,
’so’ => ‘application/octet-stream’, 阅读全文…
许石南 技术 download.content-type, php
最新评论