2014-01-02 21:40:14

淘宝IP地址库API

接口说明 1. 请求接口(GET): http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 2. 响应信息: (json格式的)国家 、省(自治区或直辖市)、市(县)、运营商 3. 返回数据格式: {"code":0,"data":{"ip":"210.75.225.254","country":"\u4e2d\u56fd","area":"\u534e\u5317", "region":"\u5317\u4eac\u5e02","city":"\u5317\u4eac\u5e02","county":"","isp":"\u7535\u4fe1", "country_id":"86","area_id":"100000","region_id":"110000","city_id&q

2013-12-27 17:36:16

PHP使用PHPMailer和谷歌免费SMTP发送邮件

在PHP中实现邮件发送功能是很简单的,只需要简单的使用mail()函数就可以。但是要让mail()函数能正确运行,我们还需要进行其他的配置。 我们需要明白的是PHP不会直接向对方邮箱发送邮件的,因为PHP是搭建在apache上的,而apache本上是没有能力发送邮件的。所以,我们要在程序中实现发送邮件的功能,必须让PHP程序正确的与SMTP服务器通信,然后由SMTP服务器负责邮件的发送。换句话说,如果我们在本地开发邮件发送的功能,就必须有一个SMTP服务器,并且使PHP能正确与之通信。通常我们可以有两种方式实现一个SMTP服务器,一种是自己在本地搭建一个,另一种是使用一些免费的SMTP服务器。在本篇文章介绍的是如何使用谷歌的免费SMTP服务器。 PHP中有内置的mail()函数实现邮件发送的功能,但是我们这里使用的是一个开源的邮件发送类PHPMailer。相信很多人都是用过这个类,这里也不再做介绍了,如果没使用过,大家可以参考PHPMailer的官网教程。 下面开始介绍,如何使用PHPMailer和谷歌免费的SMTP发送邮件。 在PHP较新的版本(5.3及其以上版本)中,php_smtp是内置的扩展,不需要手动开启。但是在PHP5.3以下的版本中,需要手动进行配置,配置的步骤如下: 1.下载php_smtp.dll扩展,下载地址:http://www.topdll.com/down

2013-12-27 17:34:51

PHP绘图基础

我们在做PHP程序开发的时候,经常需要对图形图像进行处理,比如说创建验证码图片,缩放图片,压缩图片等。PHP为我们提供了丰富的图形图像处理函数。 在PHP中,绘制图像需要经过以下几个步骤: 1.创建画布 2.设置背景颜色和画笔颜色。 3.绘制图像(如文字、椭圆,直线等) 4.输出图片 5.销毁资源 一、使用imagecreate()函数创建图像 imagecreate()函数会新建一个基于调色板的图像,该函数的返回值是资源类型,代表了一副具有指定宽高的空白图像。 imagecolorallocate()函数为为一副图像分配颜色,可以是背景颜色也可以是画笔颜色。 (有一点需要注意的是:第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色,即用 imagecreate() 建立的图像) imagecolordeallocate()取消图像颜色的分配,也就是先前由imagecolorallocate()函数分配的颜色。 imagedestory()销毁图像,释放由imagecreate()函数创建的资源占用的内存。 下面是一个简单的绘制图像的例子: $height=300; $width=300; //创建图像资源 $im=imagecreate($height,$width); //设置背景色 $bgColor

2013-12-27 17:31:55

PHP GD库输出字符串到图像

应用PHP的GD2函数库不但可以绘制图形和图表,而且可以输出文字。应用函数imagestring()可以直接在图像中输出英文字符,但是如果要输出中文字符,需要对中文字符进行一些处理,才可以正确输出。 由于GD2函数库默认使用的是UTF-8编码格式,因此在输出中文字符串之前要进行编码格式的转换,即将指定要输出的字符串转换为UTF-8编码格式,然后还要设置成中文字符串输出时所使用的字体,最后应用imagettftext()函数完成中文字符串的输出。这里就需要我们注意几个函数的使用,一个是编码格式转换的函数iconv(),另一个就是中文字符串输出函数imagettftext(),关于这两个函数的使用,大家可以参考PHP的手册,这里不作详细介绍。 下面是一个输出中文字符串的详细实例: $width=300; $height=300; //创建图像资源 $im=imagecreatetruecolor($width,$height); //设置图片背景色和画笔颜色 $bgColor=imagecolorallocate($im, 0, 255, 0); $penColor=imagecolorallocate($im, 255, 0, 0); //设置字体文件路径 $fontFile="./font/simkai.tt

2013-12-18 10:29:53

探秘PHP中的魔术方法

在面向对象的编程中,PHP为我们提供很多魔术方法,灵活的使用这些魔术方法,可以简化我们在面向对象开发过程中的很多操作。在PHP中,魔术方法通常都是以两个下划线(__)开头的。与PHP中的普通方法(方法也称函数)不同的是,魔术方法通常是在特定情况下由程序自动调用的,而普通方法通常是由我们手动调用的。魔术方法为我们提供了非常有用的功能,PHP中的魔术方法有很多,具体有哪些,大家可以参考下PHP的手册,在这里即可查看。在本篇文章中,我仅仅为大家简单介绍下一些常用的魔术方法。 一、准备工作 为了充分理解魔术方法的概念,我们就需要在代码中使用下这些魔术方法,只有概念性的东西,估计看过一遍也就忘了。所以这里我们需要先定义两个简单的类。 通常,我们习惯将每个类都定义在一个单独的文件中,类文件以”类名.class.php”的形式命名。这里我们定义两个简单的类一个是Device类,一个是Battery类。定义的两个类如下所示: 文件:Device.class.php <?php class Device{ public $name; public $battery; public $data=array(); public $connection; protected function connect(){

2013-12-18 10:25:43

PHP函数:set_time_limit()

在前一段工作的过程中,遇到了一个PHP函数:set_time_limit()。本来以为这是一个很简单的函数,但是百度了几篇文章,发现在使用这个函数的时候,还有许多需要注意的方面。 首先,set_time_limit()函数的作用是控制PHP页面的运行时间,当我们程序中的某个PHP页面有大量数据时,就需要使用该函数,比如说循环某段程序一百万次或者从数据库读取大量数据的时候。 set_time_limit()接受一个整数参数,该整数代表页面的最大执行时间,时间是以秒为单位的。默认的执行时间是30秒,当将秒数设为0 的时候,表示长时间持续运行。如: set_time_limit(300)—表示页面的最大执行时间为300秒。 set_time_limit(0)—-表示页面将持续运行。 以上是set_time_limit()函数的基本用法。该函数使用起来也很简单,但是在使用该函数的时候需要注意以下几点,否则该函数可能会不起作用或者使用不当。 1.使用该函数时,需要关闭PHP的安全模式,也就是需要在PHP配置文件中将safe_mode的值 设为off。 2.该函数和PHP配置文件中的max_execution_time选项一样,都是用来控制页面的执行时间。 3.根据PHP手册中对该函数的解释,当该函数被调用的时候,程序的超时计数器将会被重置为0,也就是页面的执行时间会从0开始计算。比如,页面默

2013-12-18 10:24:55

PHP中的auto_prepend_file和auto_append_file

在开发PHP程序的时候,我们有时候会在每个PHP的脚本的开头和结尾编写相同的代码。比如,我们常常需要在每个PHP页面中打开和关闭session或者建立和关闭数据库连接。优秀的程序员通常会寻找一种简单的方式以避免编写相同的代码。 在PHP的配置文件中,有两个配置项auto_prepend_file和auto_append_file,我们可以为这两个配置项指定两个不同的文件,让这两个文件中的代码在分别在每个PHP页面执行之前和执行结束之后执行。我们可以在PHP的配置文件php.ini中对这两个选项进行配置同时也可以在.htaccess文件中对这两个选项进行配置,具体采用哪种方式根据个人喜好选择。 由于PHP中的这个配置比较简单,所以仅做下简单的介绍: 1.auto_prepend_file—-指定在每个PHP页面执行前所要执行的代码。 2.auto_append_file—-指定在每个PHP页面执行完成后所要执行的代码。 PHP中关于这两个配置项的使用非常简单。大家简单试验下就能完全理解了。 其实,这两个配置项的作用等同于PHP中的require语句。所以,如果不是必须要使用这个功能,大家尽量不要使用PHP的这个功能,因为这会使我们代码的可读性变得非常差。 只是一个简单的小功能,因为遇到了,所以简单做下记录  。