- 重蔚自留地——php数据库操作常用的函数 12-15
- 重蔚php学习第二十八天——数组,数组相关函数,数据 12-15
- PHP应用程序开发中不正当使用mail()函数 12-15
- PHP输入输出控制函数之flush和ob_flush 12-15
- PHP基础-08-字符串变量(函数)详解 12-15
- PHP基础学习9.函数入门2 12-15
- PHP基础学习8.函数入门1 12-15
- php 单例模式 12-15
- 碎片化学习-PHP时间函数 12-15
- 闭包!什么是JS中的闭包,什么是PHP中的闭包函数? 12-15
重蔚自留地——php数据库操作常用的函数
发布者: superzhang | 发布时间:2017-12-15摘要
PHP常用函数-(6)php数据库操作常用的函数
mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数
mysql_change_user — 改变活动连接中登录的用户
mysql_client_encoding — 返回字符集的名称
mysql_close — 关闭 MySQL 连接
mysql_connect — 打开一个到 MySQL 服务器的连接
mysql_create_db — 新建一个 MySQL 数据库
mysql_data_seek — 移动内部结果的指针
mysql_db_name — 取得结果数据
mysql_db_query — 发送一条 MySQL 查询
mysql_drop_db — 丢弃(删除)一个 MySQL 数据库
mysql_errno — 返回上一个 MySQL 操作中的错误信息的数字编
重蔚php学习第二十八天——数组,数组相关函数,数据结构模拟
发布者: superzhang | 发布时间:2017-12-15数组相关函数
Key:返回当前数组中数组指针所指向的元素的下标
Current:返回当前指针所指向的元素的值
Next:获得当前数组指针所指元素的下一个元素的值,并且将数组指针向下移动一位
Prev:获取当前数组指针前一个元素的值,并将指针向前移动一位
PHP应用程序开发中不正当使用mail()函数
发布者: superzhang | 发布时间:2017-12-15一、前言
在我们挖掘PHP应用程序漏洞的过程中,我们向著名的Webmail服务提供商Roundcube提交了一个远程命令执行漏洞(CVE-2016-9920)。该漏洞允许攻击者通过利用Roundcube接口发送一个精心构造的电子邮件从而在目标系统上执行任意命令。在我们向厂商提交漏洞,发布了相关的漏洞分析文章后,由于PHP内联函数mail()导致的类似安全问题在其他的PHP应用程序中陆续曝出。在这篇文章中,我们将分析一下这些漏洞的共同点,那些安全补丁仍然存在问题,以及如何安全的使用mail()函数。
二、浅析PHP的mail()函数
PHP自带了一个内联函数mail()用于在PHP应用程序中发送电子邮件。开发者可以通过使用以下五个参数来配置邮件发送。
bool mail( string $to, string $subject, string $message [, string $additional_headers [, string $additionalPHP输入输出控制函数之flush和ob_flush
发布者: superzhang | 发布时间:2017-12-15PHP输入输出控制函数是PHP初学者必须要掌握的一个知识点,很多人刚开始的时候都分不清到底flush和ob_flush有什么区别?为什么PHP要提供两个将缓冲区的内容输出的函数?许多人都建议,不管你理解不理解,都要两个一起调用,同时是要按这样的顺序一起调用。
ob_flush();
flush();
结合官方文档和相关资料,ob_flush是发送用户(程序员)自定义的缓冲内的内容数据,而flush则是发送php自身的缓冲区的内容数据。这应该是最重要最大的区别了。不管你知道不知道,注意没注意,你可能在代码中调用了多次ob_start函数,其实这已经创建了多个输出缓冲区,这些缓冲区构成了一个缓冲区堆栈,最新创建的缓冲区就是当前缓冲区。每调用一次ob_flush就会将当前缓冲区的内容输出到上一层缓冲区,依次类推。最后才回到php缓冲区。所以上面的代码说要按顺序来调用,不然可能出现意想不到的结果。你可以简单理解成ob_flush 将缓冲内容发送到flush,而flush将缓冲内容发给客户端(浏览器),尽管实际上情况可能要比这复杂多了。
此外,ob_flush还受到php的配置选项output_buffering(默认是4069字符)的影响,如果缓冲区的内容没达到这个阀值,调用了ob_flush也没作用。而flush则不受此限制。另外这两
PHP基础-08-字符串变量(函数)详解
发布者: superzhang | 发布时间:2017-12-15在我的文章『PHP基础-04-PHP变量』中已经介绍过PHP的几个常用类型变量,由于字符串变量经常用到,所以在此详细讲解一下。
并置运算符
在PHP中,只有一个字符串运算符:并置运算符『.』。有关运算符的内容我们将在稍后的文章中进行讲解。
我们可以叫并置运算符为『点连接』,毕竟它用来将若干个字符串连接起来,我一直这么叫。不具有权威性,只是本人习惯性叫法,请悉知。
并置运算符使用实例:连接若干个字符串
echo()函数
echo 用来输出一个或多个字符串
echo 比print稍快
echo 没有返回值
语法:
echo(
PHP基础学习9.函数入门2
发布者: superzhang | 发布时间:2017-12-15上节讲解了函数的概念,使用,调用等等,接下来,我们用函数做一些比较深入的东西,话不多说,直接看代码吧!!
用函数实现模拟入栈出栈
入栈出栈效果
对,你没有看错,我们使用了函数内的一个重要特性:静态变量!这个东西非常神奇,能够自动记忆式的记录上次函数被调用之后该变量的状态,也就形成了一种有记忆性质的变量,这种变量就能让我们区分并完成多次函数调用达到的效果。入栈出栈的这个例子很简单,但是又很深刻,能贴切形象的勾勒出静态变量的使用,作用等。
在我们大部分函数调用中,出了简单涉及计算过滤等工具类函数外,静态变量的使用率也非常高,
PHP基础学习8.函数入门1
发布者: superzhang | 发布时间:2017-12-15函数,对拥有编程基础的人而言是一个并不陌生的词汇。在C语言刚入门学习的时候,老师要求我们写函数来识别某个数是否是奇数偶数,判断三个数中谁最大谁最小,输出一个数的逆序数(12345变成54321),判断某个数是否是水仙花数,对一组数据进行排序等等,总之都是为了让我们用一段代码的指令集合实现某个特殊或者明确的功能,百度百科中这样解释:
函数是指一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。
一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用是由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。
在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。
函数分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷贝构造函数、成员函数、友元函数、运算符重载函数、内联函数等。
我们可以看到,这里百度百科讲解的非常详细,能够做某件事情(有些过于白话文了)的程序称为函数,或者方法。
很多人懵了,函数和方法有什么区别吗?
事实上,在面向过程或函
php 单例模式
发布者: superzhang | 发布时间:2017-12-15<?php/*** 单例模式* 1、该类只能有一个实例* 静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会。就是说,下次再调用这个函数的时候,该变量的值会保留下来。* 2、在大量实例化new操作,会大量消耗系统资源和内存,因此可以将实例化的对象放在一个静态资源里,达到之实例化一次的效果** 创建该实例需要注意:* 1、有一个可以将实例后的类保存在一个静态变量中下次访问,可以直接使用该类,从而不用再去实例化 占用资源,该类故而要使用私有静态变量* ,private $_instance* 2、该类要防止初始化和克隆该类,因此使用private 私有的构造函数和克隆函数* 3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化)*/Class Db{private static $_instance;// 防止外界实例化对象private function __construct() {echo '--------数据库连接--------'; }// 防止外部克隆private function __clone() {// TODO: Implement __clone() method.echo '
碎片化学习-PHP时间函数
发布者: superzhang | 发布时间:2017-12-15今天有空整理一下PHP时间相关函数的使用
strtotime()预期接受一个包含美国英语日期格式的字符串并尝试将其解析为Unix时间戳
<?phpecho strtotime("now"), "\n";//1488259922echo strtotime("10 September 2000"), "\n";// 968536800echo strtotime("+1 day"), "\n";//1488346322echo strtotime("+1 week"), "\n";//1488864722echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";//1489051924echo strtotime("next Thursday"), "\n";//1488409200echo strtotime("last Monday"), "\n";//1488150000?>DEMO:
<?php闭包!什么是JS中的闭包,什么是PHP中的闭包函数?
发布者: superzhang | 发布时间:2017-12-15JS的闭包:
所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
先看下下面这段代码
这段代码有两个特点:1、函数b嵌套在函数a内部;2、函数a返回函数b。
这样在执行完var c=a()后,变量c实际上是指向了函数b,再执行c()后就会弹出一个窗口显示i的值(第一次为1)。这段代码其实就创建了一个闭包,为什么?因为函数a外的变量c引用了函数a内的函数b,就是说:
当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。
①这里首先得说下JS的垃圾回收机制:
在Javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收。如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。因为函数a被b引用,b又被a外的c引用,这就是为什么函数a执行后不会被回收的原因。
②闭包有什么作用呢?
