PHP迭代器的内部执行过程详解

PHP迭代器的内部执行过程详解
下面我们来了解如何实现一个自定义的迭代器,然后再开始慢慢理解迭代器的内部工作原理。先来看一个官方的例子。 class myIterator implements Iterator {     private $position = 0;     private $array = array(         "first_element",         "second_element",         "last_element",     );     public function __construct() {         $this->position = 0;     }     function rewin...

PHP使用PHPMailer发送邮件的简单使用方法

PHP使用PHPMailer发送邮件的简单使用方法
最近需要用到发送邮件的功能,原本是用PHP自带的mail()函数发送的。php mail()这个方法非常简单、方便、易用,但是除了网易邮箱、QQ邮箱、GMAIL邮箱等常用的邮箱可以收到之外,经测试HOTMAIL、TOM、LIVE等邮箱是收不到此类邮件的。所以就转而使用PHPMailer这个强大的邮件发送类。 使用官方自带的一些例子,有些会报 Mailer Error: Could not instantiate mail function. 这个错误。参考了一些资料之后,还...

php使用exec shell命令注入的方法讲解

php使用exec shell命令注入的方法讲解
使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此。如果使用了被污染数据,命令注入漏洞就产生了。 exec()是用于执行shell命令的函数。它返回执行并返回命令输出的最后一行,但你可以指定一个数组作为第二个参数,这样输出的每一行都会作为一个元素存入数组。使用方式如下: <?php $last = exec('ls', $output, $return); print_r($output); echo "Return [$retu...

php打开远程文件的方法和风险及解决方法

php打开远程文件的方法和风险及解决方法
本文讲的是php打开远程文件的使用方法,还有使用风险和解决方法。 PHP有一个配置选项叫allow_url_fopen,该选项默认是有效的。它允许你指向许多类型的资源,并像本地文件一样处理。例如,通过读取URL你可以取得某一个页面的内容(HTML),看下面的代码: <?php $contents = file_get_contents('https://www.phpfensi.com/'); ?> 当被污染数据用于include和require的文件指向时,会产生严重漏洞。实...

php后门URL的防范

php后门URL的防范
后门URL是指虽然无需直接调用的资源能直接通过URL访问,例如,下面WEB应用可能向登入用户显示敏感信息: <?php $authenticated = FALSE; $authenticated = check_auth(); if ($authenticated) {     include './sensitive.php'; } ?> 由于sensitive.php位于网站主目录下,用浏览器能跳过验证机制直接访问到该文件。这是由于在网站主目录下的所有文件都有一个相应的URL地址。在某些情况下,这些脚...

php session劫持和防范的方法

php session劫持和防范的方法
session 数据暴露 会话数据常会包含一些个人信息和其它敏感数据。基于这个原因,会话数据的暴露是被普遍关心的问题。一般来说,暴露的范围不会很大,因为会话数据是保存在服务器环境中的,而不是在数据库或文件系统中。因此,会话数据自然不会公开暴露。 使用SSL是一种特别有效的手段,它可以使数据在服务器和客户端之间传送时暴露的可能性降到最低。这对于传送敏感数据的应用来说非常重要。SSL在HTTP之上...

程序员:能花钱的,就不要花时间

程序员:能花钱的,就不要花时间
如果要寻找这个星球上最抠门的群体,那么一定非程序员们莫属了,有个笑话是找对象要找程序员:『挣得多,花的少;常加班,死的早』. 在创业之前,我也是个抠门的主,公司给配笔记本,就绝不自己买,一个N73用三年如果不是丢了就不会买新的,东西永远是够用就好,而不管是否在技术上已经落伍;为了找一款软件的sn,我可以花上一个小时,不厌其烦地注册有sn的论坛,攒积分下载,尽管该软件的正版价也就几十人民币. 值得庆幸的...

PHP中spl_autoload_register函数的用法总结

PHP中spl_autoload_register函数的用法总结
spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明 bool spl_autoload_register ([ callback $autoload_function ] ) 将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为 spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl...

php使用mb_check_encoding检查字符串在指定的编码里是否有效

php使用mb_check_encoding检查字符串在指定的编码里是否有效
mb_check_encoding — 检查字符串在指定的编码里是否有效 PHP 版本要求: (PHP 4 >= 4.4.3, PHP 5 >= 5.1.3) 说明:bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] ) 检查指定的字节流在指定的编码里是否有效。它能有效避免所谓的“无效编码攻击(Invalid Encoding Attack)”。 参数 var 要检查的字节流。如果省略了这个参数,此函数会检查所有来自最...

PHP 5.5 创建和验证哈希最简单的方法详解

PHP 5.5 创建和验证哈希最简单的方法详解
最近 PHP 5.5.0 发布了,并带来了一份完整的全新特性与函数的列表。全新API之一就是Password Hashing API.它包含4个函数:password_get_info(), password_hash(), password_needs_rehash(),和password_verify().让我们分步来了解每个函数 我们首先讨论password_hash()函数。这将用作创建一个新的密码的哈希值。它包含三个参数:密码、哈希算法、选项。前两项为必须的。你可以根据下面的例子来使用这个函数...
Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录