2008年7月13日 | 标签: ,

一般情况下,URL一一对应控制器的类和方法,例如

http://www.example.com/class/function/arg1/arg2

第一段对应控制器类,第二段对应方法,其余的对应方法的参数,然而有时候你希望改变这种行为,比如你希望用这样的URL:www.example.com/article/22,这里第二段是一个数字,它是控制器的一个参数,并非一个方法,那么Kohana的URL路由功能可以改变这一切.
Kohana的路由设置
你需要从system/config拷贝一份routes.php 到application/config目录,
默认情况,routes.php包含两条规则

$config['_allowed'] = '-a-z 0-9~%.,:_';

$config['_allowed']决定了URL中允许的字符,不在这个范围的字符串不能被程序接受 阅读全文…

2008年7月12日 | 标签: ,

在Kohana中URL同分段组成,典型的URL:http://localhost/control/action/arg1/arg2 ,各分段依次对应控制器,控制器方法,方法参数,

例如:http://localhost/index.php?/articles/edit/1/my-first-article

  • articles(控制器)
  • edit(方法)
  • 1(第一个参数)
  • my-first-article(第二个参数)

这会对应控制器articles,关于 Controllers 阅读全文…

2008年7月12日 | 标签: ,

控制器的命名和解析:
一个控制器基本上可以是任意文件名,控制器的类(class)名必须与文件名一致.
控制器的约定:
1.必须在controllers目录下.
2.控制器的文件名必须小写, e.g. articles.php
3.控制器的类名必须是控制器首字母大写的文件名附加上_Controller,比如Articles_Controller
4.必须继承Controller类
5.以”_”线开头的方法(如_do_something() )不能被URL的参数访问
我们创建一个简单的控制器在application/controllers/article.php,将会输出”hello world”.
现在你在浏览器键入www.yoursite.com/article 你将会看到 阅读全文…

2008年6月27日 | 标签:
<?php
function is_utf8($string) {
    
return preg_match('%^(?:
        [x09x0Ax0Dx20-x7E] # ASCII
        | [xC2-xDF][x80-xBF] # non-overlong 2-byte
        | xE0[xA0-xBF][x80-xBF] # excluding overlongs
        | [xE1-xECxEExEF][x80-xBF]{2} # straight 3-byte
        | xED[x80-x9F][x80-xBF] # excluding surrogates
        | xF0[x90-xBF][x80-xBF]{2} # planes 1-3
        | [xF1-xF3][x80-xBF]{3} # planes 4-15
        | xF4[x80-x8F][x80-xBF]{2} # plane 16
        )*$%xs
', $string);
}
?>
2008年5月27日 | 标签:

今天用FLASH做一个调查系统,从FLASH传到PHP生成EXCEL文件,发现中文出现乱码,在网上找了很久,好像没有相关的文章.把代码贴出来

<?php
require 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer('multi-worksheet-demo.xls'); // 初始化类
//$workbook->send('multi-worksheet-demo.xls'); // 发送 Excel 文件名供下载
$n=$_POST['N'];
$h=$_POST['H'];
$t=$_POST['T'];
$c=$_POST['C'];
$worksheet =& $workbook->addWorksheet('sheet-1'); // 加入一个工作表 sheet-1
$data = array(
    
array($n, $h, $t,$c),
    
array("中文测试", "中文测试", "中文测试","中文测试")
);
for ($row = 0; $row < count($data); $row ++) {
    
for ($col = 0; $col < count($data[0]); $col ++) {
        
$worksheet->writeString($row, $col, iconv("UTF-8","GB2312",$data[$row][$col])); // 写入数据
    
}
}
$workbook->close(); // 完成下载
?>
5 of 5«12345