PHP静态类

 更新时间:2016年11月25日 16:10  点击:2188
<?php
class Shtml
  {
    var $Templet;
    var $DataSource;
    var $Dir;
 
    var $fileName;
    var $mod;
    var $handle;
 
    function Shtml($fileName="")
    {
      $this->fileName=$fileName;
      $this->mod="wb";
      $this->handle=false;
 
      $this->Templet    = "";
      $this->DataSource  = array();
      $this->Dir      = "";
    }
   
    ///  <描述>
    ///  绑定数据源,参数为一数组。
    ///  </描述>
    function BindData($arr)
    {
      $this->DataSource = $arr;
    }
   
    ///  <描述>
    ///  设置文件存放路径。
    ///  </描述>
    function SetDir($dir)
    {
      $this->Dir = $dir;
    }
    function SetFileName($fileName)
    {
      return $this->fileName=$fileName;
    }
 
    function GetMod()
    {
      return $this->mod;
    }
    function SetMod($mod)
    {
      return $this->mod=$mod;
    }
    function Open()
    {
      if(substr($this->fileName,0,1)=="/")
        $this->fileName = $_SERVER[''DOCUMENT_ROOT''] . $this->fileName;
  今天继续提交读程序笔记,这次比较少,而且相对简单些。

ConnectorComputation
    - compute()
        如果workList还有元素,就继续循环,但是第一次进入循环时候根据构造方法来看workList只有一个元素<mainFunction, emptyCallString>。然后从workList中取出第一个元素,获取TacFunction和CallString(gamma),根据TacFunction(p)从function2ECS中得到ECS(ecs_p),实际上此时functions2ECS中第一个元素对应的TacFunction即为_main。得到gamma在ecs_p中的位置,即是在一个CallString的链表中的位置
        随后,将p这个TacFunction包含的所有的CfgNodeCall迭代一遍,对于每一个callNode,得到其callee(即被调用的函数q),在q!=null的情况下,以callNode建立一个新的CallString(gamma_2),从function2ECS中得到q对应的ECS(ecs_q),获取ecs_q中gamma_2的位置,如果为-1,就将gamma_2添加到ecs_q的CallStrings队列中去,并以q和gamma_2建立元素添加到workList中去,expand it。
        接下来扩充什么ConnectorFunction因为都在for循环里边,是对局部变量的操作,所以没有什么用处。
        在while循环结束之后,调用makeCallGraph()方法。
    - makeCallGraph()
        首先以mainFunction初始化一个CallGraph,获得mainFunction所包含的方法调用列表processUs<CfgNodeCall>,并建立一个以访问的集合visited,将mainFunction添加进集合里边。
        当processUs不为空,依次取出元素callNode,得到它的caller和callee,如果callee!=null,向callGraph中添加元素。如果callee还没有被处理过,则将其所包含的所有函数调用添加进processUs,并将其放进visited。


Checker
    根据初始提供的run-all.bat的参数来看,实际上aliases analyze和literal analyze并没有进行,只是gta.analyze()进行了,实际上也就是只有dependance analyze执行了。通过以来关系最后决定vulns。

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.111cn.net/mayongzhan - 马永占,myz,mayongzhan

php扩展分为两种.一种是php的扩展,一种是zend扩展.(传说中的,这是programing php里讲的).真的希望能有人发表一些关于zend扩展的东西.这才是真正的核心.
本来是要读下源码的.但是似乎php的源码很多.目前只能扫扫边边角角.如果有机会的话,会去读一下源码的.
其实扩展并不是很难,php已经给好了例子和扩展的工具.使用一下就可以了.
先下php源码,解压
然后到解压目录,ext下 执行./ext_stel --extname=myz
然后到解压目录,执行
./buildconf --force
./configure --with-myz=shared --其他的
make
make install

然后就能看到phpinfo()里面多了个myz了.

这里编译了好几次.好象每次都有新问题.多调试几次一定会成功的."妻儿"不舍

附:php源码包中两个重要的文件内容
README.EXT_SKEL
README.SELF-CONTAINED-EXTENSIONS

README.EXT_SKEL

(NOTE: you may also want to take a look at the pear package
      PECL_Gen, a PHP-only alternative for this script that
    supports way more extension writing tasks and is
    supposed to replace ext_skel completely in the long run ...)

WHAT IT IS

  It''s a tool for automatically creating the basic framework for a PHP module
  and writing C code handling arguments passed to your functions from a simple
  configuration file. See an example at the end of this file.

HOW TO USE IT

  Very simple. First, change to the ext/ directory of the PHP 4 sources. If
  you just need the basic framework and will be writing all the code in your
  functions yourself, you can now do

   ./ext_skel --extname=module_name

  and everything you need is placed in directory module_name.

  [ Note that GNU awk is likely required for this script to work.  Debian
    systems seem to default to using mawk, so you may need to change the
    #! line in skeleton/create_stubs and the cat $proto | awk line in
    ext_skel to use gawk explicitly. ]

  If you don''t need to test the existence of any external header files,
  libraries or functions in them, the module is already almost ready to be
  compiled in PH

<

本文件可以用于自动创建目录下所有JPG图片的缩略图,放到图片目录下运行即可。
缺点:长宽不一的图片会被拉伸变形,不能智能裁切,需要智能裁切的,请自行研究。



<?php
$config = array();
$config[''path''] = "./";
$config[''t_width''] = 120;
$config[''t_height''] = 98;
$config[''ignore''] = array("",".",

<
[!--infotagslink--]

相关文章

  • php svn操作类

    以前我们开发大型项目时都会用到svn来同步,因为开发产品的人过多,所以我们会利用软件来管理,今天发有一居然可以利用php来管理svn哦,好了看看吧。 代码如下 ...2016-11-25
  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • PHP实现递归无限级分类

    在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。 递归,简单的说就是一段程序代码的重复调用,当把...2015-10-23
  • C#类中static变量用法分析

    这篇文章主要介绍了C#类中static变量用法,实例分析了static变量使用技巧与相关注意事项,需要的朋友可以参考下...2020-06-25
  • mybatis-plus实体类主键策略有3种(小结)

    这篇文章主要介绍了mybatis-plus实体类主键策略有3种(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-27
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • PHP 一个完整的分页类(附源码)

    在php中要实现分页比起asp中要简单很多了,我们核心就是直接获取当前页面然后判断每页多少再到数据库中利用limit就可以实现分页查询了,下面我来详细介绍分页类实现程序...2016-11-25
  • 详解ES6实现类的私有变量的几种写法

    这篇文章主要介绍了详解ES6实现类的私有变量的几种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-10
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • c#各种Timer类的区别与用法介绍

    System.Threading.Timer 是一个简单的轻量计时器,它使用回调方法并由线程池线程提供服务。在必须更新用户界面的情况下,建议不要使用该计时器,因为它的回调不在用户界面线程上发生...2020-06-25
  • C#学习笔记整理_浅谈Math类的方法

    下面小编就为大家带来一篇C#学习笔记整理_浅谈Math类的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • ES5和ES6中类的区别总结

    这篇文章主要给大家介绍了ES5和ES6中类的区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-21