当前位置:  编程技术>php
本页文章导读:
    ▪php5.3 注意事项说明       php5.3新特性1.支持命名空间(namespace)5.3以前 代码如下:<?phpclass Zend_Db_Table_Select {//表示当前这个类文件位于Zend/Db/Table下}5.3 代码如下:<?phpnamespace Zend/Db/Tableclass Select {}2.支持延迟静态绑定.........
    ▪file_get_contents("php://input", "r")实例介绍       解释不清,直接上例子index.html 代码如下:  <form action="/blog_article/action.html" method="post" >  <input type="text" name="userName"  id="userName" /><br/>  <input type="text" name="userPass"  id="userPass" /><br/>.........
    ▪如何给phpcms v9增加类似于phpcms 2008中的关键词表       最近用phpcms v9二次开发一个人站点,之前用2008中有个比较舒服的关键词全部显示出来功能,而v9将关键词列表功能增加到了搜索中,如果搜索一个关键词就会自动产生一个增加到了search_keywo.........

[1]php5.3 注意事项说明
    来源: 互联网  发布时间: 2013-11-30

php5.3
新特性
1.支持命名空间(namespace)
5.3以前

代码如下:

<?php
class Zend_Db_Table_Select {
//表示当前这个类文件位于Zend/Db/Table下
}

5.3
代码如下:

<?php
namespace Zend/Db/Table
class Select {
}

2.支持延迟静态绑定
5.3以前(__CLASS__获得类名)self::who()
代码如下:

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        self::who();
    }
}
class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}
B::test();
?>

输出A
5.3(__CLASS__获得类名)static::who();
代码如下:

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        static::who(); // 这里实现了延迟的静态绑定
    }
}
class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}
B::test();
?>

输出B
 
3.支持goto语句
多数计算机程序设计语言中都支持无条件转向语句goto,当程序执行到goto语句时,即转向由goto语句中的标号指出的程序位置继续执行。
 
4.支持闭包
代码如下:

<?php
$msg = "hello";
$callback  =  function() use($msg){
    print_r($msg);
}
$msg = "hello world!";
callback($callback);

输出
hello
hello world!

5.新增魔术方法__callStatic()
PHP中原本有一个魔术方法__call(),当代码调用对象的某个不存在的方法时该魔术方法会被自动调用。
新增的__callStatic()方法则只用于静态类方法。当尝试调用类中不存在的静态方法时,__callStatic()魔术方法将被自动调用。

6.新增一种常量定义方式(有时代码出错,如undefined HE,你要看看是否支持const)

代码如下:

<?php
const CONSTANT = 'Hello World';


    
[2]file_get_contents("php://input", "r")实例介绍
    来源: 互联网  发布时间: 2013-11-30
解释不清,直接上例子
index.html
代码如下:

  <form action="/blog_article/action.html" method="post" >
  <input type="text" name="userName"  id="userName" /><br/>
  <input type="text" name="userPass"  id="userPass" /><br/>
  <input type="submit" value="ok" />
 </form>

action.php
代码如下:

<?php
$raw_post_data = file_get_contents('php://input', 'r');
echo "-------\$_POST------------------<br/>";
echo var_dump($_POST) . "<br/>";
echo "-------php://input-------------<br/>";
echo $raw_post_data . "<br/>";
?>

 


    
[3]如何给phpcms v9增加类似于phpcms 2008中的关键词表
    来源: 互联网  发布时间: 2013-11-30
最近用phpcms v9二次开发一个人站点,之前用2008中有个比较舒服的关键词全部显示出来功能,而v9将关键词列表功能增加到了搜索中,如果搜索一个关键词就会自动产生一个增加到了search_keyword表中,这一点不是很喜欢v9;站内搜索功能,我觉得一般会用得比较少,而我们在增加文章的时候实际上就把关键词分隔开了,为什么还要多此一举了,其实改起来也比较简单

在model文件夹中增加一个keyword_ext_model.class.php。keyword_model实际是存在model文件夹中的,不知道为什么没有keyword这张表?

所以还是不要在这个基本上增加,也许将来这个model会用上
代码如下:

<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class keyword_ext_model extends model {
    public $table_name = '';
    public function __construct() {
        $this->db_config = pc_base::load_config('database');
        $this->db_setting = 'default';
        $this->table_name = 'keyword_ext';
        parent::__construct();
    }
}
?>

然后创建一张表
代码如下:

CREATE TABLE `t_v9_keyword_ext` (
  `tagid` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `tag` char(50) NOT NULL,
  `style` char(5) NOT NULL,
  `usetimes` smallint(5) unsigned NOT NULL DEFAULT '0',
  `lastusetime` int(10) unsigned NOT NULL DEFAULT '0',
  `hits` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `lasthittime` int(10) unsigned NOT NULL DEFAULT '0',
  `listorder` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `modelid` smallint(6) DEFAULT '0',
  PRIMARY KEY (`tagid`),
  UNIQUE KEY `tag` (`tag`),
  KEY `usetimes` (`usetimes`,`listorder`),
  KEY `hits` (`hits`,`listorder`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

最后一步在phpcms/modules/content/fields/keyword 中增加一个 input.inc.php
代码如下:

function tags($field, $value)
    {
        if(!$value) return '';
        if(strpos($value, ','))
        {
            $s = ',';
        }
        else
        {
            $s = ',';
        }

        $keywords = isset($s) ? array_unique(array_filter(explode($s, $value))) : array($value);
        $keyword_db = pc_base::load_model('keyword_ext_model');

        foreach($keywords as $tag)
        {
            $tag = trim($tag);
            $keyword_db->delete(array("tag"=>$tag,"modelid"=>$this->modelid));
            $c=$this->db->count("keywords like '%".$tag."%'");
            $keyword_db->insert(array("modelid"=>$this->modelid,"tag"=>$tag,"usetimes"=>$c,"lastusetime"=>SYS_TIME),false,true);
        }

        return implode($s, $keywords);
}

这样在文章增加关键词的时候,会自动增加到keyword_ext中一份,调用全站tags的时候直接调上这个表就行了。请得先清除全站缓存,否则修改后看不到效果。

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪判断php数组维度(php数组长度)的方法 iis7站长之家
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3