Submitted by 淡水河边 on 2008, February 13, 10:28 AM
先看段代码
PHP代码
- <?php
-
- $len = 15;
-
- $str = "这个新闻或是文章的标题很长,需要只显示前面一些字,后面用...来代替";
- echo strlen($str)<=$len ? $str : (substr($str,0,$len).chr(0)."...");
- ?>
chr(0)相关知识:
null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000
虽然chr(0)不会显示出什么,但是他是一个字符。
当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。而值为0x81到0xff与0x00组合始终都显示为“空”
根据这一特点,在substr的结果后面补上一个chr(0),就可以防止出现乱码了
淡水ps:
如果是UTF-8,UTF-8中的汉字是3个字节的,截取的长度尽量去3的倍数,以避免乱码的产生
Tags: 乱码
网站|PHP学习 | 评论:0
| Trackbacks:0
| 阅读:653
Submitted by 淡水河边 on 2008, January 27, 9:58 PM
Tags: 模板
网站|PHP学习 | 评论:0
| Trackbacks:0
| 阅读:815
Submitted by 淡水河边 on 2008, January 25, 9:29 PM
哈哈,不需要什么设置了
只要用svn到最近版本就ok了
在config的database.php多了
PHP代码
- $db['default']['char_set'] = "utf8";
- $db['default']['dbcollat'] = "utf8_general_ci";
淡水正好用utf8,不用再改了.
Tags: codeigniter
网站|PHP学习 | 评论:2
| Trackbacks:0
| 阅读:1067
Submitted by 淡水河边 on 2008, January 19, 11:48 AM
PHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时
方法1:
找到php.ini中的“;date.timezone =”这行,将“;”去掉,改成“date.timezone = PRC”(PRC:People's Republic of China 中华人民共和国),重启Apache,问题解决。
方法2:
在php5以及起以上的版本,要输出本地的时间(限中国),可以这么写代码:
PHP代码
- <?php
- date_default_timezone_set('Asia/Shanghai');
- echo date('Y-m-d H:i:s');
- ?>
也可以这样写代码:
PHP代码
- <?php
- date_default_timezone_set('Asia/Chongqing');
- echo date('Y-m-d H:i:s');
- ?>
下次再有人问,就直接发这个地址给他。^_^
Tags: 时间
网站|PHP学习 | 评论:0
| Trackbacks:0
| 阅读:729
Submitted by 淡水河边 on 2008, January 17, 9:16 AM
Submitted by 淡水河边 on 2008, January 14, 8:06 PM
如果需要做网址转向,一般上在 php 用 header() 实现的转向是 302:
PHP代码
- header("Location: http://www.newaddress.com/");
301 及 302 同样可以做到网址的转向,但分别在于 301 是永久的转向,而 302 是暂时性质的转向。这个分别对于使用者来说是没有分别的,但对于 search engine 就有分别了。Google 推荐网站管理员当转换网址时用 301 转向。而以下分别是透过 .htaccess、PHP 及 ASP 实现 301 转向的方法,而假设新 domain 是 newdomain.com:
.htaccess
在网站的根目录建立一个 .htaccess 档案,并加入以下内容:
RewriteEngine On
RewriteRule ^(.*)$ http://www.newdomain.com/ [R=301,L]
PHP
在 index.php 的最顶加入以下几行:
PHP代码
- <?php
- header("HTTP/1.1 301 Moved Permanently");
- header("Location: http://www.newdomain.com/");
- exit();
- ?>
ASP
在 index.asp 或 default.asp 的最顶加入以下几行:
XML/HTML代码
- <%
- Response.Status="301 Moved Permanently"
- Response.AddHeader "Location","http://www.newdomain.com/"
- Response.End
- %>
Tags: 301, seo
网站|PHP学习 | 评论:1
| Trackbacks:0
| 阅读:1017
Submitted by 淡水河边 on 2008, January 14, 7:32 PM
PHP 内建的 substr 函式可以分割文字,但要分割的文字如果包括有中文字往往会遇到问题,这可以用 mb_substr() 来做。mb_substr() 的用法与 substr() 很相似,只是在 mb_substr() 最后要加入多一个参数,以设定字符串的编码,但要先让 PHP 支援 mbstring 才可以。
在编译 PHP 时加入 --enable-mbstring 选择就可以加入 mbstring 模块了。以下是 mb_substr() 的使用方法:
PHP代码
- <?php
- $string = '这是测试用的中文字';
- $string = mb_substr($string, -1, 3, 'gb2312');
- echo $string;
- ?>
以上的第三行要注意,将 gb2312 修改成中文字所用的编码,例如 UTF-8。淡水牢骚:国内多数idc都是windows的系统,而且好多函数不支持.
Tags: substr, mb_substr
网站|PHP学习 | 评论:0
| Trackbacks:0
| 阅读:823
Submitted by 淡水河边 on 2008, January 14, 7:25 PM
在 PHP 内用 mail() 发出邮件时,如果没有指定 Return Path,系统便会以预设的电邮地址代替 (例如 admin@localhost 这类)。以下是一个常见的错误:
PHP代码
- <?php
- $header= "From:My Name<my_name@mydomain.com>";
- $header.= "Reply-To: My Name<my_name@mydomain.com>";
- $header.= "Return-Path: My Name<my_name@mydomain.com>";
- mail($to, $subject, $email_body, $header);
- ?>
以上设定了所发出的邮件的 From 内容,但这是不够的,只要查看所发出邮件的 header,会发现有一个 Return-Path 显示系统的预设电邮。因为现时 spam 非常猖獗,很多 email server 会这类 email 档掉或者标示成 spam,将以上程序码改成这档便可以避免这个问题:
PHP代码
- <?php
- $header= "From:My Name<my_name@mydomain.com>";
- mail($to, $subject, $email_body, $header);
- ?>
Tags: mail()
网站|PHP学习 | 评论:0
| Trackbacks:0
| 阅读:786
Submitted by 淡水河边 on 2008, January 12, 10:09 AM
又是来自咕噜咕噜。为什么要压缩js文件?很明显,压缩后,文件个头小了,下载就快了,网页也就能在更短的时间内呈现在我们的面前,正常情况下,gzip对js的压缩比能达到3:1左右,以ext-all.js为例,源文件大小:463k,经过gzip压缩后的个头为125k,几乎到了4:1。
PHP代码
- <?php
-
- gzip_file("ext-all.js");
-
- function gzip_file($file_s){
- if(!is_array($file_s)){
- $files[] = $file_s;
- }
- else{
- $files = $file_s;
- }
- header("Expires:".gmdate("D, d M Y H:i:s", time()+15360000)."GMT");
- header("Cache-Control: max-age=315360000");
- $mtime = filemtime($file);
- $gmt_mtime = gmdate(‘D, d M Y H:i:s’, $mtime) . ‘ GMT’;
- header("Last-Modified:" . $gmt_mtime);
- ob_start(‘ob_gzhandler’);
- foreach($files as $file){
- $ext = array_pop(explode(‘.’, $file));
- switch ($ext){
- case ‘css’:
- header("Content-type: text/css");
- break;
- case ‘js’ :
- header("Content-type: text/javascript");
- break;
- case ‘gif’:
- header("Content-type: image/gif");
- break;
- case ‘jpg’:
- header("Content-type: image/jpeg");
- break;
- case ‘png’:
- header("Content-type: image/png");
- break;
- default:
- header("Content-type: text/plain");
- }
- echo implode(”, file($file));
- }
- ob_end_flush();
- }
- ?>
假设将上面的代码存储为ext-all.php
那么引用的时候只需
PHP代码
- include("ext-all.php")
就能实现对ext-all.js的压缩,当然前提是服务端支持zlib。
Tags: gzip
网站|PHP学习 | 评论:0
| Trackbacks:0
| 阅读:895
Submitted by 淡水河边 on 2008, January 11, 7:08 PM
一个免费开源的项目。有asp.net , php 2个版本 自带上传功能 。
SPAW Editor 2. 特点介绍:
- 支持tab功能,意味着一个编辑器可以同时编辑好几个文档。越来越像常用的编辑器了,哈哈。
- 浮动的工具栏,想怎么拖就怎么拖。
- 窗口任意缩放……没有想法了
- 含有API接口,可以方便的进行二次开发。
- 支持 Opera, Safari, Firefox, Mozilla, Netscape 等等,还有更多吗?
- 可以方便更换主题。
- 文档管理器,任意上传。
- 多语言支持,当然有我们可爱的母语中文咯。
这么强大的编辑器,也就区区三四百kb,精简一下应该更令人兴奋。
使用方法:
开头插入
PHP代码
- <?php
- include(”../spaw.inc.php”);
- ?>
需要编辑器的地方插入,其中spaw1就是你表单的标识,如果是编辑就再加入一个内容的函数
PHP代码
- <?php
- $spaw1 = new SpawEditor(”spaw1″);
- $spaw1->show();
- ?>
就这么简单。配置文件在 config 目录中,具体的设置查自带的文档吧
php版本: http://sourceforge.net/project/showfiles.php?group_id=77954&package_id=78981&release_id=523489
ASP.Net版本: http://sourceforge.net/project/showfiles.php?group_id=77954&package_id=92584&release_id=543187
Tags: editor, wysiwyg
网站|PHP学习 | 评论:1
| Trackbacks:0
| 阅读:967