PHP中类的魔术方法总结

PHP中对对象设计了15个非常有用的魔术方法,分别是__construct()__destruct()__call()__callStatic()__get()__set()__isset()__unset()__sleep()__wakeup()__toString()__invoke()__set_state()__clone()__debugInfo()。这些魔术方法有助于对象在不同的情况下自动的实现一些行为,如初始化对象自动赋值、对象被销毁时发出提示信息等等。下面对这些魔术方法的功能进行简要总结。

阅读全文

PHP面向对象的关键字

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

PHP为面向对象编程提供了很多的关键字和魔术方法,当然其中一些关键字和魔术方法在其他的面向对象编程语言中也存在,如Java。下面对这些关键字和魔术方法做一个总结。

阅读全文

PHP中对数组的操作

数组的声明

PHP中有两种数组:索引数组和关联数组。索引数组的索引是从0开始递增的数字,由程序自动生成;关联数组使用字符串作为索引值,由用户自行输入。

初始化时直接赋值

1
2
3
4
5
6
7
8
9
//索引数组
$example[0] = "a";
$example[1] = "b";
$example[2] = "c";

//关联数组
$example_1["a"] = "1";
$example_1["b"] = "2";
$example_1["c"] = "3";

若要按默认索引顺序声明索引数组,可以不用填入索引值,程序自动按声明顺序为键值建立索引:

1
2
3
$example[] = "a";   //索引为0
$example[] = "b"; //索引为1
$example[] = "c"; //索引为2
阅读全文

关于SSH远程登录

SSH(Secure Shell,安全外壳协议),是用于计算机之间的加密登录的一种安全协议标准。其最大的特点在于加密,这也正是它相比TelnetFTP等其他协议的优势。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。

使用SSH登录只需要一行命令:

1
2
3
ssh 用户名@服务器IP          # 默认状态
ssh 服务器IP # 当本机的用户名和服务器用户名相同时
ssh -p 8888 用户名@服务器IP # 自定义访问端口
阅读全文

Python爬虫学习总结

网络爬虫的流程和原理

整个网络爬虫的流程可以分为如下的三个步骤:

整个爬虫的过程都可以使用 Python(本文使用 Python 3)来完成,每个步骤使用的模块大致如下:

  • 获取网页:requestsurllibselenium(模拟浏览器)
  • 解析网页:re正则表达式、BeautifulSoup、HTML 解析器lxml
  • 存储数据:存储至 txt、csv 等文件或是存储至 MySQL、MongoDB 等数据库
阅读全文

Aegis招新WriteUp

Adventures in PHP (0)

很明显,flag 就在 flag1.php$flag 变量中。

观察发现 $flag 变量必须存在且非 NULL,而且用到了 strcmp() 字符串比较函数。而我输入的值显然不可能等于$flag的值,故只能想办法绕过 strcmp() 函数来达到显示 flag 的目的。

阅读全文