工作中,遇到一个问题 ,同样的代码在FIREFOX 和 IE 下 表现 相差太多 ,查之 ,竟然是因为 session_id() 返回值的问题,解决过程如下
1. 测试 FIREFOX 和 IE ,IE每次刷新页面时 得到的SESSION_ID 值不一样,FIREFOX 一样
2.测试 IE6,IE7,IE8 竟然 只有IE7 有这种 现象………..
3.经多方查证,没有结果 ,网上没有人和我的情况一下,自己解决吧
4.我左三圈右三圈 ,最后发现 竟然 是 内裤 掉色 ……………………………………………………………
域名里 有 下线 “_” ,这个竟然 是BUG 所在点
结论: 在IE7 下 ,如果 域名里包括下划线,SESSION 将失效
如果你觉得本BLOG对你有帮助 ,请帮助其它人
根据网上的一个 解压类写的 关于 tar gzip bzip 的解压脚本(php)
该脚本附加了 解压后权限的设定 (只能设定属于HTTP的文件和文件夹)
下载该解压脚本
该脚本包含 3个文件
index.php 用来处理请求(是修改权限还是解压文件)
lib/utile.class.php 修改权限所需要用到的类
lib/archive.class.php 解压文件所有用到的类(来源于网络 有部分修改)
这是一个过滤URL中 多个’/'的例子
修改 apps/myapp/config/filters.yml
添加代码
myFilter:
class: myFilter
(myFilter可自定义)
创建文件myFilter.class.php
创建位置apps/myapp/lib/
文件内容如下
使用preg_match 是因为 ereg 过时
注意preg_match 匹配正则时以’/'开始和结束
class myFilter extends sfFilter
{
public function execute ($filterChain)
{
//提取uri
$str = $_SERVER['REQUEST_URI'];
//判断是否匹配正则
if(preg_match("/(.*\/{2,}.*)((\.html)*)/",$str)){
//要跳转的页面
header("Location:/error.html");
//跳转后代码不执行
exit();
}
//执行下一个filter
$filterChain->execute();
}
}
修改apps/myapp/config/routing.yml
添加代码 此代码用来定义URL /error.html 要执行的模块和动作
Error:
url: /error.html
param: { module: index, action: error404}
class MyClass {
public static function register() {
//如果解串行器发现有未定义类要被实例化,则设置spl_autoload_call函数加载请求类.
ini_set('unserialize_callback_func', 'spl_autoload_call');
//自动载入类,类似于__autoload
if (false === spl_autoload_register(array("MyClass","autoLoad"))) {
throw new Exception('wrong');
}
}
//处理自动载入类
public static function autoload($className) {
require realpath(dirname(__FILE__)).'/lib/'.strtolower($className).'.class.php';
}
}
只要在项目目录中创建一个类的目录,这里我创建的叫lib,往这里放入你要放的类的文件。
注:
1.类的文件名要统一规则,这样方便系统快速地进行查找,避免消耗更多的内存。
2.autoload的函数的载入类的规则可以依据需要进行设置,我这里规定要载入我的lib目录里文件的扩展名是class.php的类的文件。
以下是使用的例子:
在创建的lib目录里方了一个叫cache的类的文件。
接着在你要编写的程序文件里载入上边的说的自动载入类的文件,使用MyClass::register(),就可以不用载入要实例化的类的文件直接实例化刚才的cache的类的文件。
以上说的实现的效果必须是php的版本>=5.1.2
前文书说的好 MAKER 可以在VIM 里使用PHPCS ,VIM是很牛B 的编辑器,但是还有一个更牛B 的编辑器就是 EMACS。
具体有多牛,去GOOGLE 百度一下
PHPCS是什么 ,请参考前文
这里贴上 EMACS 下使用的代码
(defun php-lint ()
(interactive)
(let ((compilation-error-regexp-alist '(php))
(compilation-error-regexp-alist-alist ()))
(pushnew '(php "\\(syntax error.*\\) in \\(.*\\) on line \\([0-9]+\\)$" 2 3 nil nil 1)
compilation-error-regexp-alist-alist)
(compile (concat "php -l -f \"" (buffer-file-name) "\""))))
(define-key php-mode-map (kbd " ") 'php-lint)
(defun phpcs ()
"Performs a PHP code sniffer check on the current file."
(interactive)
(let ((compilation-error-regexp-alist '(gnu)))
;; (compile (format "phpcs --standard=PEAR --report=emacs \"%s\""
(compile (format "phpcs --standard=Zend --report=emacs \"%s\""
(buffer-file-name)))))
;; Check code style
(define-key php-mode-map (kbd " ") 'phpcs)
完成以后可以用 快键调用也可以用 命令行调用。
什么 你看不懂? 没有关系 ,看不懂就看不懂吧,早晚能看懂的