首页
网站首页
公司简介
资讯中心
推荐内容
返回顶部
PHP静态分析与跨站脚本检测,判断上传图大小函数
发布时间:2019-12-29 04:07
浏览次数:

今天继续昨天的话题,这次仍然是为了理解php解析过程而做得工作。这次是将ProgramConverter中对PHP文件解析产生的ParseTree显示出来,使用JTree。 当然ProgramConverter中没有返回ParseTree的方法,如果另外在Checker中重新解析一遍,毫无疑问是不划算的,因而改写ProgramConverter,添加几行代码就行了。然后再Checker中调用具体产生JTree的类,将这个ParseTree作为参数传进去,然后OK。 这里相比昨天的Draw,使用了JTabbedPane作为底层容器,分别承载DrawPanel和今天的ParseTreePanel,这些地方的改动就不写出来了。下边列出将ParseTree转换为JTree的类文件:packageat.ac.tuwien.infosys.;importjava.util.*;importjavax.swing.*;importjavax.swing.tree.*;importjava.awt.*;importat.ac.tuwien.infosys.*;publicclassParseTreePanelextendsJPanel...{privateParseTreeparseTree;publicParseTreePanel(ParseTreeparseTree)...{this.parseTree=parseTree;this.add(newJTree(convert(this.parseTree.getRoot())),BorderLayout.CENTER);}publicDefaultMutableTreeNodeconvert(ParseNodeparseNode)...{Stringname=parseNode.getName();if(parseNode.isToken())...{name+=:+parseNode.getLineno();}DefaultMutableTreeNodedmtNode=newDefaultMutableTreeNode(name);java.util.ListParseNodelist=parseNode.getChildren();for(ParseNodenode:list)...{dmtNode.add(convert(node));}returndmtNode;}}这些都是些表面文章,没有涉及到Pixy的内涵。顺便提一句,这个PhpParser跟Pixy是同一个人做的。很佩服啊! 另外,今天看了下ASPA这个东西,将asp文件转换为php文件,本来是很神奇的东西,居然运行不了。但是我把AspParser.java重新编译一遍之后就可以运行了,否则会在引用的commons组件那里出点问题。不知道是否只有我是这样的。<

PHP 函数入门教程是每一位学php者都必须掌握的基础知道哦,好了下面我们就来讲一下php函数实例加教程吧.

//缩略图部分------------------------------------------------------------//判断缩略图大小函数----- function ResizeImage($im,$maxwidth,$maxheight,$name){ $width = imagesx($im); $height = imagesy($im); if(($maxwidth $width $maxwidth) || ($maxheight $height $maxheight)){ if($maxwidth $width $maxwidth){ $widthratio = $maxwidth/$width; $RESIZEWIDTH=true; } if($maxheight $height $maxheight){ $heightratio = $maxheight/$height; $RESIZEHEIGHT=true; } if($RESIZEWIDTH $RESIZEHEIGHT){ if($widthratio $heightratio){ $ratio = $widthratio; }else{ $ratio = $heightratio; } }elseif($RESIZEWIDTH){ $ratio = $widthratio; }elseif($RESIZEHEIGHT){ $ratio = $heightratio; } $newwidth = $width * $ratio; $newheight = $height * $ratio; if(function_exists(imagecopyresampled)){ $newim = imagecreatetruecolor($newwidth, $newheight); imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); }else{ $newim = imagecreate($newwidth, $newheight); imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); } ImageJpeg ($newim,$smalladdrname.$name..jpg); ImageDestroy ($newim); }else{ ImageJpeg ($im,$smalladdrname.$name..jpg); } } //生成部分 if($_FILES['image']['size']){ if($_FILES['image']['type'] == image/pjpeg){ $im = imagecreatefromjpeg($bigaddrname.$exname); }elseif($_FILES['image']['type'] == image/x-png){ $im = imagecreatefrompng($bigaddrname.$exname); }elseif($_FILES['image']['type'] == image/gif){ $im = imagecreatefromgif($bigaddrname.$exname); } if($im){ if(file_exists($smalladdrname..jpg)){ unlink($smalladdrname..jpg); } ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$smalladdrname); ImageDestroy ($im); } } echo div align='center'a href='javascript:window.history.back()'上传成功/a/div;}//缩略图结束----------------------------------------------------- }

apache_2.2.6-win32-x86-no_ssl.msi 下载地址mysql-noinstall-5.1.22-rc-win32.zip 下载地址php-5.2.0-Win32.zip 下载地址phpMyAdmin-2.11.3-all-languages.zip 下载地址 php有两种安装方法,模块化安装和CGI安装,当PHP被配置成CGI解析器时,每次解释PHP版本,web服务器便产生一个临时的PHP解析器来解释PHP脚本,很明显,这会使其性能降低。而当PHP被编译成Apache的一个模块时,它和Apache服务器运行在同一块内存地址中,和传统的CGI模式在性能上有非常大的提高。有些功能像持续的数据库连接只能在Apache模块方式下才具有。采用CGI模式时,还会遇到一些安全性方面的问题。所以本指引采用模块化安装PHP的方式。1、安装apache:1.1:下载以后点击直接安装就可以,我选择安装为D:workapache目录,安装以后apache就会自动运行,在地址栏里面输入便能出现apache的欢迎页面,表示apache安装已经成功。1.2:修改D:workapacheconf这个apache的配置文件,将其中的DocumentRoot D:/work/apache/htdocs修改为DocumentRoot D:/work/web/;修改Directory D:/work/apache/htdocs为Directory D:/work/web/,注意这里两个目录的路径都是指向你程序开发的目录,最后要加上/。1.3:重新启动apache,在地址栏里面输入就可以工作目录了。2、安装PHP:2.1:将PHP文件的安装包解压到D:workphp,然后拷贝D:workphpphp5ts.dll到C:WINDOWSsystem32。2.2:在PHP的目录下面,将php.ini-dist修改为php.ini,修改其中的extension_dir为extension_dir = D:workphpext2.3:将D:workapacheconf中的DirectoryIndex index.html修改为DirectoryIndex index.html index.php,这样就可以默认支持index.php为默认加载页。2.4:在D:workapacheconf中的最后加上下面的三行代码:LoadModule php5_module d:/work/php/php5apache2_2.dllAddType application/x- .phpPHPIniDir d:/work/php/2.5:重新起动apache以后,可以在工作目录下面新建index.php,写入:?phpphpinfo();?然后访问出现大量的图标,就说明安装成功了。3、安装MySQL:3.1、将MySQL解压到D:workmysql目录,然后运行D:workmysqlbinmysqld.exe,MySQL就可以顺利运行了,但是还需要将D:workphplibmysql.dll文件复制到C:WINDOWSsystem32下面。php就能顺利得支持MySQL了。3.2、修改步骤2.2里面的php.ini,将;extension=php_mysql.dll前面的;号去掉,让PHP支持mysql,然后重新启动apache。4、安装phpmyadmin:4.1:把phpmyadmin解压后,

友情链接: 网站地图
Copyright © 2015-2019 http://www.nflfreepicks.net. 新葡萄京娱乐场网址有限公司 版权所有