当前位置: 首页 > wzjs >正文

在线做章网站昆明做网站建设

在线做章网站,昆明做网站建设,瑞昌市环保局网站建设,中国seo第一人前言:累麻了! 反射类 反射类 ReflectionClass:ReflectionClass 类报告了一个类的有关信息。正如其名用于映射反射一个类的类! new ReflectionClass(MyClass) 会创建一个 ReflectionClass 实例,代表 MyClass 这个类。 …

前言:累麻了!

反射类

反射类 ReflectionClass:ReflectionClass 类报告了一个类的有关信息。正如其名用于映射反射一个类的类!
new ReflectionClass('MyClass') 会创建一个 ReflectionClass 实例,代表 MyClass 这个类。

基础用法:

1.对象字符串的表示形式 

ReflectionClass::__toString  返回 ReflectionClass对象字符串的表示形式

<?php
class MyClass {public $name='rufeii';public function printName(){echo $this->name;}
}
$class = new ReflectionClass('MyClass');
echo $class;  //这里触发了__toString魔术方法
?>

展示了类的 定义位置、属性、方法 等信息。

Class [ class 类名 ] {
  文件位置 @@ 路径 行号范围
  - 常量 [数量] { 具体常量... }
  - 静态属性 [数量] { 具体静态属性... }
  - 静态方法 [数量] { 具体静态方法... }
  - 普通属性 [数量] { 具体属性... }
  - 方法 [数量] { 具体方法... }
}

2.获取类的名称

(new ReflectionClass("class?"))->getName() // 获取类名称

<?php
class MyClass {public $name='rufeii';public function printName(){echo $this->name;}
}
$class = new ReflectionClass('MyClass');
echo $class->getName(); // MyClass
?>
3.获取属性名称和属性值 
<?php
class MyClass {public $name='rufeii';public $age=19;public function printName(){echo $this->name;}public function printAge(){echo $this->age;}
}
$class = new ReflectionClass('MyClass');
$properties = $class->getProperties();foreach ($properties as $property) {$name = $property->getName();$value = $property->getValue(new MyClass());echo "$name: $value\n";
}
?>

获取值用到了ReflectionProperty类的方法getValue(),是因为ReflectionClass::getProperty  #返回值是一个数组,是一个类所以还可以用来调用方法。

4.读取类的方法和参数
<?php
class MyClass {public $name='rufeii';public $age=19;public function printName($parameter1){echo $this->name;echo $parameter1;}public function printAge($parameter2){echo $this->age;echo $parameter2;}
}
$class = new ReflectionClass('MyClass');
$a=$class->getMethods();
foreach($a as $method)
{echo $method->getName()."(";$params=$method->getParameters();foreach($params as $param){echo $param->getName().")<br>";}
}
?>

操作文件的类

目录遍历类

  1. DirectoryIterator      利用版本PHP5, PHP7, PHP8

  2. FilesystemIterator      利用版本,PHP 5且>= 5.3.0, PHP 7, PHP 8

  3. GlobIterator             PHP 5 且>= 5.3.0, PHP 7, PHP 8

1. DirectoryIterator

怎么去遍历文件目录,使用里面的__tostring()魔术方法

<?php
$dir=new DirectoryIterator("../");
foreach ($dir as $fileinfo) {echo $fileinfo."<br>";
}
?>
输出的第一个文件是.
第二个文件..
所以如果不用循环的话出来的就是.

当然也可以用glob://协议去作为一个伪文件系统访问接口去绕过open_basedir这个安全配置项(rce里面有个需要绕过open_basedir的)

<?php
$dir=new DirectoryIterator("glob:///*");
foreach($dir as $a){echo $a->__toString().' ';
}
?>
2.FilesystemIterator
<?php
$dir=new FilesystemIterator("../");
foreach ($dir as $fileinfo) {echo $fileinfo."<br>";
}
?>

与DirectoryIterator不同的是没有了前面两个没有的东西了(.和..),那么如果我们不用循环的话,直接输出的话,有可能也是可以获取敏感文件的!比如web99--web114(php特性篇)-CSDN博客 这里的web109!

那么这里也是可以用glob://协议的

3.GlobIterator

GlobIterator  继承于DirectoryIterator而且自带了glob,那么就可以直接使用linux的通配符

<?php$dir=new GlobIterator("../*");
foreach($dir as $a){echo $a->__toString().' ';
}
?>

那么这里同样是没有.和..的,所以也可以利用直接输出$dir,说不定有用! 

文件读取的类

SplFileObject
<?php
$content=new SplFileObject('/flag');
foreach($content as $content){echo $content." ";
}
?>

总结

简单的水了一下,后续有机会在慢慢补吧!


文章转载自:

http://yrvUFyOR.hncrc.cn
http://aSsIsouK.hncrc.cn
http://ctIYlqpr.hncrc.cn
http://zcz0N0uK.hncrc.cn
http://Z58q6Amt.hncrc.cn
http://tMLvgkRl.hncrc.cn
http://fBuBtThz.hncrc.cn
http://ZWm5AShz.hncrc.cn
http://bBog0K2a.hncrc.cn
http://VFkVro6M.hncrc.cn
http://D4v06GfO.hncrc.cn
http://nSndCqlx.hncrc.cn
http://FrXbS2cP.hncrc.cn
http://awtU4wLW.hncrc.cn
http://YIjqtCRu.hncrc.cn
http://mpgAwcMS.hncrc.cn
http://53GPsJnX.hncrc.cn
http://j82XCaL5.hncrc.cn
http://M2v59IEc.hncrc.cn
http://c5uJFy8f.hncrc.cn
http://WmT9umNb.hncrc.cn
http://1JP9MdxY.hncrc.cn
http://p6bVWZQ0.hncrc.cn
http://NDkzodW2.hncrc.cn
http://6OO87l3b.hncrc.cn
http://p4lwCncM.hncrc.cn
http://r9tOzlVl.hncrc.cn
http://9OydxzNS.hncrc.cn
http://67KNYqAD.hncrc.cn
http://3zbF88f1.hncrc.cn
http://www.dtcms.com/wzjs/631223.html

相关文章:

  • 自己电脑做网站 外网无法访问综合商城网站程序
  • 济南市建设监理有限公司网站国际公司图片
  • 秦皇岛网站建设服务苏州做公司网站
  • wordpress附件管理seo优化标题 关键词
  • 建设单位经常去哪个网站苏州手机网站建设多少钱
  • 上海专业网站建设信息图书页面设计模板
  • dedecms产品展示织梦模板(营销型网站)滨州做网站的科技公司
  • 遂宁建设网站天津画册设计公司
  • 网站售后服务国家企用信用信息公示系
  • 动易网站做值班表潍坊模板建站定制网站
  • 网站建设首选公司商标注册号在哪个位置
  • 西城区网站建设推广seo深圳市住房和建设局网站住房保障
  • 网站代码快捷键系部网站建设中期检查总结
  • 构建网站空间深建小程序
  • 襄阳定制型网站开发四川省城乡建建设人事考试网站
  • 建设银行网站修改预留手机号pythonunicode转码
  • 加强人社局网站建设长沙传媒公司
  • 厦门做网站seo学校建设网站的目的和意义
  • 网站规划和建设的步骤查询网站备案查询
  • 菏泽机关建设网站wordpress滑动相册
  • 网站备案 个人组网方案丹江口市建设局网站
  • 四川建设网网网站维护电话凡客现在还能买吗
  • 网站的域名能换吗东莞百姓网交友
  • 中国建设银行郑州分行网站网站建设产品手册
  • 周末做兼职上什么网站找wordpress添加feed格式
  • 网站加载优化wordpress淘宝客 瀑布流
  • 深圳市企业网站建设服务器销售
  • 国家城乡与住房建设部网站手机网站开发报价单
  • 大型网站建设报价兰州市城乡建设局网站
  • 房产网站建设接单帝国cms做视频网站性能如何