今天关于一个缓存类的改写和使用错误记录
[ 2014-01-26 12:32:52 | 作者: admin ]
这个php缓存类是一直自己使用的,也很方便。
原本是使用序列化保存的,也就是serialize()后保存到文件,然后读取文件后 unserialize()
因为在效率上unserialize比直接require要慢,所以就把类改写为直接数组保存。
写数组明文到文件
在读取函数犯了一个错误,类的read函数中直接require_once,发现外部一直无法直接用$data,后来一想类里面是插入了局部变量,需要传递出去,
return $data;
之后问题解决,调试的痛苦无处不在。
原本是使用序列化保存的,也就是serialize()后保存到文件,然后读取文件后 unserialize()
因为在效率上unserialize比直接require要慢,所以就把类改写为直接数组保存。
写数组明文到文件
$data = array(1,2,3,4);
$content = var_export($data,true) . ";"; //末尾不要加上忘记分号
$content = var_export($data,true) . ";"; //末尾不要加上忘记分号
在读取函数犯了一个错误,类的read函数中直接require_once,发现外部一直无法直接用$data,后来一想类里面是插入了局部变量,需要传递出去,
return $data;
之后问题解决,调试的痛苦无处不在。
SEO优化:仿地宝网URL伪静态版块目录化和贴子目录化
[ 2014-01-07 16:19:13 | 作者: admin ]
在《百度搜索引擎优化指南》2.1.2 网站结构里提到,合理的网站结构应该是一个扁平的树型网状结构。而且大家都应该知道权重方面:二级域名>目录>静态页>动态页
那么什么是扁平的树型网状结构呢?
首页:http://www.moke8.com
栏目页:http://www.moke8.com/discuzx/
内容页:http://www.moke8.com/discuzx/m826/
像这样的页面就是一个“扁平的树型网状结构”。每增加一个内容页,都会给栏目页增加一定的权重。像地宝网的URL就是很规范的,整站URL目录化,目录层次不超过2个。对于seo是很有利的。
那么现在discuz官方的地址是怎么样的呢?
首页:http://www.discuz.net/forum.php
栏目页:http://www.discuz.net/forum-21-1.html
...
阅读全文…
那么什么是扁平的树型网状结构呢?
首页:http://www.moke8.com
栏目页:http://www.moke8.com/discuzx/
内容页:http://www.moke8.com/discuzx/m826/
像这样的页面就是一个“扁平的树型网状结构”。每增加一个内容页,都会给栏目页增加一定的权重。像地宝网的URL就是很规范的,整站URL目录化,目录层次不超过2个。对于seo是很有利的。
那么现在discuz官方的地址是怎么样的呢?
首页:http://www.discuz.net/forum.php
栏目页:http://www.discuz.net/forum-21-1.html
...
阅读全文…
PHP下使用SimpleXML处理XML文件
[ 2013-12-23 14:57:47 | 作者: admin ]
1 SimpleXML 简介
要处理XML 文件,有两种传统的处理思路:SAX 和DOM。SAX 基于事件触发机制,
对XML 文件进行一次扫描,完成要进行的处理;DOM 则将整个XML 文件构造为一棵DOM
树,通过对DOM 树的遍历完成处理。这两种方法各有优缺点,SAX 的处理思路相对抽象,
DOM 的处理过程相对烦琐,都不很适合新手的入门。
PHP5 推出了一套新的XML 处理函数,即SimpleXML。名如其实,SimpleXML 本身小
巧精干,只提供了少量的几个方法函数,但用它处理起XML 文件功能却非常强大,操作也
非常的简单。
首先,它提供有简单的函数可以从XML 文档、字符串、或DOM 对象上直接构造出
SimpleXMLElement 对象;其次,SimpleXMLElement 提供有简单的方法可以进行属性、子节
点、和XPath 的操作;然而,SimpleXML 最简单的地方是,它提供有使用标准对象的属性和
...
阅读全文…
要处理XML 文件,有两种传统的处理思路:SAX 和DOM。SAX 基于事件触发机制,
对XML 文件进行一次扫描,完成要进行的处理;DOM 则将整个XML 文件构造为一棵DOM
树,通过对DOM 树的遍历完成处理。这两种方法各有优缺点,SAX 的处理思路相对抽象,
DOM 的处理过程相对烦琐,都不很适合新手的入门。
PHP5 推出了一套新的XML 处理函数,即SimpleXML。名如其实,SimpleXML 本身小
巧精干,只提供了少量的几个方法函数,但用它处理起XML 文件功能却非常强大,操作也
非常的简单。
首先,它提供有简单的函数可以从XML 文档、字符串、或DOM 对象上直接构造出
SimpleXMLElement 对象;其次,SimpleXMLElement 提供有简单的方法可以进行属性、子节
点、和XPath 的操作;然而,SimpleXML 最简单的地方是,它提供有使用标准对象的属性和
...
阅读全文…
php使用json,解码返回为空null的情况
[ 2013-09-22 15:24:51 | 作者: admin ]
php的decode_json需要注意
1、不能有多余的逗号
2、名值对全部使用双引号
1、不能有多余的逗号
2、名值对全部使用双引号
[
{"title"=>"aaa"},
{"title"=>"bbb"}
]
{"title"=>"aaa"},
{"title"=>"bbb"}
]
PHP“Cannot use object of type stdClass as array”
[ 2013-09-22 15:24:06 | 作者: admin ]
php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误
错误:
Cannot use object of type stdClass as array
产生原因:
+展开
-PHP
$res = json_decode($res);
$res['key']; //把 json_decode() 后的对象当作数组使用。
解决方法(2种):
1、使用 json_decode($d, true)。就是使json_decode 的第二个变量设置为 true。
2、json_decode($res) 返回的是一个对象, 不可以使用 $res['key'] 进行访问, 换成 $res->key 就可以了。
参考手册:json_decode
Return Values:Returns ...
阅读全文…
错误:
Cannot use object of type stdClass as array
产生原因:
+展开
-PHP
$res = json_decode($res);
$res['key']; //把 json_decode() 后的对象当作数组使用。
解决方法(2种):
1、使用 json_decode($d, true)。就是使json_decode 的第二个变量设置为 true。
2、json_decode($res) 返回的是一个对象, 不可以使用 $res['key'] 进行访问, 换成 $res->key 就可以了。
参考手册:json_decode
Return Values:Returns ...
阅读全文…
纯基于PHP的单点登陆
[ 2013-08-30 16:34:14 | 作者: admin ]
http://developer.51cto.com/art/200706/49481.htm
【引自纯月的博客】Discuz有一个通行证,类似于单点登陆。不过我觉得单点登陆最好应该是一个独立的程序,和CAS一样。由于所有的程序都是PHP的,所以就做了一个简单的单点登陆。借用了一下discuz的加密方法。
用户有以下几种情况会直接访问本系统:
1、用户直接访问passport,希望登陆
2、用户从passport_app上点击登陆按钮转过来的
3、用户从passport_app1转到passport_app2时候,passport_app2转过来的
4、用户直接输入访问passport_app的URL
2 3 4或者有referer,或者有fromurl的参数
====
1 使用通行证的应用程序上面的登陆按钮全部指向下面的链接:http://localhost/passport/login.php
...
阅读全文…
【引自纯月的博客】Discuz有一个通行证,类似于单点登陆。不过我觉得单点登陆最好应该是一个独立的程序,和CAS一样。由于所有的程序都是PHP的,所以就做了一个简单的单点登陆。借用了一下discuz的加密方法。
用户有以下几种情况会直接访问本系统:
1、用户直接访问passport,希望登陆
2、用户从passport_app上点击登陆按钮转过来的
3、用户从passport_app1转到passport_app2时候,passport_app2转过来的
4、用户直接输入访问passport_app的URL
2 3 4或者有referer,或者有fromurl的参数
====
1 使用通行证的应用程序上面的登陆按钮全部指向下面的链接:http://localhost/passport/login.php
...
阅读全文…
UCENTER和PHPSSO的异同点
[ 2013-08-30 16:32:30 | 作者: admin ]
UCENTER和PHPSSO的异同点
之前研究过ucenter,感觉写的很不错。里面的很多的东西仿站我们可以直接拿来用,可以在我们建站的时候直接拿来用。但是今天我看了phpcms的phpsso之后,感觉UC和PS都还不错。phpcms的phpsso和ucenter的功能是一样的也是一个用户处理中心,只是phpsso现在的功能还没有ucneter那么多。在这里就两者的一些异同进行简单的分析下:
我们都知道,在要处理类似与同步登录和同步退出时,都会用到UC这样子的东西(当然这也不一定)。UC在处理同步登录和同步退出的过程在本博客已经讲解过了,这里就不解说了。简单说下,就是客户端向用用户名(或者其他)和密码还有加密密钥组成的加密字符通过套接字发送给服务器端,然后服务器获取这些加密字段后,进行解密,然后在处理相关的操作,之后返回的是一串JS串。其实PS(phpsso)在处理同步登录和同...
阅读全文…
之前研究过ucenter,感觉写的很不错。里面的很多的东西仿站我们可以直接拿来用,可以在我们建站的时候直接拿来用。但是今天我看了phpcms的phpsso之后,感觉UC和PS都还不错。phpcms的phpsso和ucenter的功能是一样的也是一个用户处理中心,只是phpsso现在的功能还没有ucneter那么多。在这里就两者的一些异同进行简单的分析下:
我们都知道,在要处理类似与同步登录和同步退出时,都会用到UC这样子的东西(当然这也不一定)。UC在处理同步登录和同步退出的过程在本博客已经讲解过了,这里就不解说了。简单说下,就是客户端向用用户名(或者其他)和密码还有加密密钥组成的加密字符通过套接字发送给服务器端,然后服务器获取这些加密字段后,进行解密,然后在处理相关的操作,之后返回的是一串JS串。其实PS(phpsso)在处理同步登录和同...
阅读全文…
用Ucenter整合你的应用,深入了解流程
[ 2013-08-30 14:15:34 | 作者: admin ]
http://www.comsenz.com/downloads/install/ucenter
可以到phpchina查看更多关于Ucenter的文章
整合一个【测试应用】
1、下载Discuz_7.0.0_SC_UTF8.zip 和 UCenter_1.5.0_SC_UTF8.zip
其中的DZ是为了测试整合了自己的应用后,同步登陆之类的。。
2、安装(这个不用说详了吧)
安装官方安装后,会自动把ucenter和dz打通的,如图
3、添加自己的新的应用
点添加新应用,然后选自定义,然后如图(根据你自己的更改)输入
4、创建自己的测试环境
把UCenter_1.5.0_SC_UTF8(1)\advanced\examples拷贝到你的测试目录,并把advanced中的uc_client放到examples目录下~~
(1)修改config.inc.php为自己本机的配置,如下是我的,可参考
...
阅读全文…
可以到phpchina查看更多关于Ucenter的文章
整合一个【测试应用】
1、下载Discuz_7.0.0_SC_UTF8.zip 和 UCenter_1.5.0_SC_UTF8.zip
其中的DZ是为了测试整合了自己的应用后,同步登陆之类的。。
2、安装(这个不用说详了吧)
安装官方安装后,会自动把ucenter和dz打通的,如图
3、添加自己的新的应用
点添加新应用,然后选自定义,然后如图(根据你自己的更改)输入
4、创建自己的测试环境
把UCenter_1.5.0_SC_UTF8(1)\advanced\examples拷贝到你的测试目录,并把advanced中的uc_client放到examples目录下~~
(1)修改config.inc.php为自己本机的配置,如下是我的,可参考
...
阅读全文…