那些年我们踩过的乱码坑
前言 这是一个由乱码引发的故事。抱歉我暂时找不到更加惨烈的图,请相信我,还有更目不忍视的画面。请看下图那些框框,那都是些什么鬼!这是要害死强迫症吗?如果同时看到几十个框,简直让人崩溃。 问题来了,这究竟是些什么鬼?
前言 这是一个由乱码引发的故事。抱歉我暂时找不到更加惨烈的图,请相信我,还有更目不忍视的画面。请看下图那些框框,那都是些什么鬼!这是要害死强迫症吗?如果同时看到几十个框,简直让人崩溃。 问题来了,这究竟是些什么鬼?
目录结构对于一个框架来讲是比较重要的。我们一起来看一下ZenTaoPHP的目录结构。 一、顶级目录结构 config: 配置文件所在的目录。包含了config.php和my.php db: demo应用所需要的blog.sql framework: 包含了框架的核心文件。 js: 包含了js脚本文件。 lib: 包含了常用的类文件。 module: 模···
禅道框架里面提供了一个front.class.php,里面内置了三个类,分别为html, js和css,用来生成一些html标签,创建简单的js交互。 一、html类 html::title($title) 生成$title标签。 html::meta($name, $value) 生成html的meta标签。 html::icon($url) 生成icon文件的调用代码。 html::rss($url, $title) 输出rss。 html::a($href,···
因为zentaoPHP框架有两种运行方式,所以在生成链接的时候,尽量不要手工拼写链接代码,通过调用系统提供的createLink方法,来生成链接。 一、$this->createLink()方法 比如,我们要生成一个blog模块的view方法的链接,需要传递参数为id=17,这样来调用: echo $this->createLink('blog', 'view', 'id=17&cat=123') 第一个参数是模块名称,第二个参数是方法名,第三个参数是参数,使用key1=valu···
zentaoPHP框架共支持两种方式,一种是传统的GET方式,一种是静态友好的方式。 一、传统GET方式 可以在config/my.php里面设置requestType为GET来启用GET方式。当打开GET方式之后,访问地址格式如下: index.php?m=$moduleName&f=$methodName&$param1=$value1¶m2=valur2&t=html m: 代表模块名称,比如m=blog,则代表访问blog模块。 f: 代表要访问的模块control里面的方法名,比如f=edit,代表访问blog/cont···
zentaoPHP框架的所有请求都是通过index.php来进行的。它的基本原理是通过设置apache或者其他webserver,将所有的请求都 转交给index.php。index.php加载框架文件,初始化应用,然后分析请求,得到请求对应对模块名、方法和参数,然后加载相应模块的 control方法,model方法,后渲染模板,展示给用户。基本的模型如下:
WEB标准提倡结构、表现和行为相 分离,现在越来越多采用这种表现和行为的方式,但它也为我们开发调试带来一些问题,网页载入一堆JavaScript,,我们很难搞清楚最后在哪些元素的哪个动作绑定了事件,尤其是JavaScript加载事件的方式五花八门,可以透过jQuery、element.click = function() { }、element.addEventListener()…,很难由单一处找出所有事件。而理不清事件来龙去脉,要追踪某个点击动作背后的行为就变···
直接上代码 /** * $str 原始中文字符串 * $encoding 原始字符串的编码,默认GBK * $prefix 编码后的前缀,默认"" * $postfix 编码后的后缀,默认";" */ function unicode_encode($str, $encoding = 'GBK', $prefix = '', $postfix = ';') { $str = iconv($encoding, 'UCS-2', $str); $arrstr = str_split($str, 2); $unistr = ''; for($i···
zentaoPHP框架中自带了一个简单的blog示例,下面让我们来部署这个示例应用。如果安装的时候已经初始化了数据库,跳过这一步。 一、创建数据库 在db目录下面,有一个blog.sql。这是一个非常简单的表结构,使用phpmyadmin,或者是命令行的mysql工具,创建一个数据库,叫做blog,然后把这个sql文件里面的建表工具导入。 $> mysql -u root -p $> create database blog;
在上一章中,我们实现了简单的Hello world输出,在这一章里面,我们将向你展示如何利用mvc的结构来实现Hello world. 一、仅有control.php的hello world. 在上一个章节中,我们所实现的代码,实际上是在control里面直接输出了Hello world.