PHP 5.3 ~ PHP 5.6 功能变动

PHP 5.3 ~ PHP 5.6 功能变动

本文将会介绍自 PHP 5.3 起,直至 PHP 5.6 中增加/删除/更改的特征。

总纲

PHP 5.3以前:autoload,PDO 和 MySQLi,类型约束,JSON 支持,Phar支持,……

PHP5.3:匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,……

PHP5.4:Short Open Tag, 数组简写形式,Traits, 内置 Web 服务器,……

PHP5.5:yield, list() 用于 foreach, ……

PHP5.6: 常量增强,可变函数参数,命名空间增强,……

PHP 5.3以前

类型约束

通过类型约束可以限制参数的类型,不过这一机制并不完善,目前仅适用于类、接口、 array(数组,从PHP 5.1开始)、callable(可执行类型,从PHP 5.4开始) 以及string 和 int(从PHP 7.0开始).(http://php.net/manual/zh/language.oop5.typehinting.php)

JSON 支持

包括 json_encode(), json_decode() 等函数,JSON 系列函数,可以将 PHP 中的数组结构与 JSON 字符串进行转换。值得注意的是 json_decode() 默认会返回一个对象而非数组,如果需要返回数组需要将第二个参数设置为 true.

Phar支持

http://php.net/manual/zh/phar.requirements.php

继续阅读PHP 5.3 ~ PHP 5.6 功能变动

迁移WordPress到新服务器

 

  1. 备份:通过FTP备份全部的文件。导出数据库sql文件。
  2. 迁移:把备份的文件解压到新的web服务器根目录下;导入sql文件到新的mysql数据库中。修改数据库配置文件wp-config.php,将用户名、密码等更改为新MySQL服务器的信息。

    更改博客的安装地址和博客地址,在数据库中找到wp-options表,找到第一条记录siteurl以及home,这两条记录的值改成你的新域名。只有完成这一步后,才可以顺利进入后台,否则输入密码,会自动跳转到原来的老域名。

    UPDATE wp_options SET option_value = replace( option_value, ‘http://老域名’, ‘https://taobig.org’) WHERE option_name = ‘home’ OR option_name =’siteurl’ ;

    修改文章内部所有的用到老链接的域名字符串。此时得要将文章内链的旧域名修改为新域名。

    UPDATE wp_posts SET post_content = replace(post_content, ‘http://老域名’, ‘https://taobig.org’);

    UPDATE wp_posts SET guid = replace( guid, ‘http://老域名’, ‘https://taobig.org’ );

Windows下创建.htaccess文件

.htaccess是apache的访问控制文件,apache中httpd.conf的选项配合此文件,完美实现了目录、站点的访问控制,当然最多的还是rewrite功能,即URL重写,PHP中实现伪静态的一个重要途径,也是被公认为SEO中搜索引擎友好的极为有效的一个手段。

网上很多文章都说不能在windows下创建.htaccess文件,必须从Unix/Linux系统中拷贝过来。我就感觉奇怪了,难道是因为这个文件是没有BOM的UTF-8,或者有什么隐藏的标识符。用十六进制的格式打开文件,没有发现特别之处。

我自己打开notepad.exe,将内容复制到里面,保存为.htaccess,没有问题!真的没有问题!

那为什么网上很多人都说不能在windows下创建.htaccess文件呢?

原来是windows不允许重命名时在.的前面没有字符,它认为这样的文件名是不合法的。这就造成我们无法通过重命名”新建文本文档.txt”为”.htaccess”来创建此访问控制文件,但是,

要解决这个问题也很简单:

  1. 打开notepad.exe,写入内容,保存为.htaccess,同时指定保存类型为“所有文件”。
  2. 随便打开一个已有的文本文件,然后另存为.htaccess,同时也必须指定保存类型为“所有文件”。

以下有几个网上显示的方法,也可以实现。

使用DOS命令,在DOS下有三种方法可供选择:

  1. 1.    使用屏幕编辑命令copy con .htaccess后回车,输入内容,最后按下ctrl+z结束编辑,就成功生成了.htaccess
  2. 2.    使用重命名命令ren 1.txt .htaccess ,这是最常规的方法了,在windows窗口下不能执行的命令,在cmd下却如履平地

使用重定向命令 echo. >.htaccess,这里将一个回车符输入到.htaccess,同样能创建成功;

JpGraph之失效的SetColor

JpGraph is an Object-Oriented Graph creating library for PHP >= 5.1 The library is completely written in PHP and ready to be used in any PHP scripts (both CGI/APXS/CLI versions of PHP are supported).

开始是准备用原生的GD库画股票行情图的,但是感觉太麻烦了,于是就想到了第三方库,并最终选中了jpgraph库。

jpgraph正式网站上的几个展示图片挺不错的。但是下载文件本地应用却发现问题不少。附在源代码中的手册有一些代码在新版本中不适用。LinePlot的SetColor方法按照手册写没有效果。后来在网上搜索了很多地方,终于在一个个人博客找到了答案。

博主的博文节选如下:

问题目前存在于3.5.0b1版本

使用版本为3.5.0b1的JpGraph画线方法,设置线的颜色方法失效。

$lineplot=new LinePlot($ydata);
$lineplot->SetColor(‘red’);//这个方法
$lineplot->SetWeight( 2 ); // Two pixel wide

$graph->Add($lineplot);

后经使用稳定版3.0.7测试,同样的代码颜色设置成功。3.5.0b1版本发布时间为2010.10.07,至今已经有9个月了,难道他们就没有发现这个BUG?使用的人太少了,可惜。

有一个访客留言告诉了我们问题的所在: 这个不是bug in version 3.5.0b1, methods to change designs of each plot should be used after $graph->add($plot) method.

当时我看到这里就知道问题所在,就没继续往下看了。没想到今天又遇到一个类似的问题, BarPlot SetColor()和SetFillColor()都没有效果,也是那个手册的例子也不管用,又一次搜索到此处,发现上面那个网友的下方,另一个网友给出了解释:

Thursday, 21 October 2010 jpGraph – cannot change line colour (or color) Using jpGraph, an excellent package for plotting graphs from database data via PHP, I hit a problem: setting $lineplot->Setcolor(“blue”); had no result. Nor did $lineplot->SetWeight(2); Eventually, I sent off an enquiry to jpGraph – and back came a very prompt reply (from the Far East): in version 3.5.0b1, methods to change designs of each plot should be used after $graph->add($plot) method. This is really counter-intuitive. But it works. So it goes like this $bplot = new BarPlot($data1y); $graph->Add($bplot); // NOW change properties of the plot – these work ONLY after calling Add() $bplot->SetWeight(0); $bplot->SetFillGradient(‘#FFAAAA:0.7’, ‘#FFAAAA:1.2’, GRAD_VER); There is a note in the documentation included as part of the package, at: jpgraph-3.5.0b1/docs/chunkhtml/ch29s02.html

原来是没有仔细看手册,手册里面有对新版本的说明。
文中说提到的博文的地址为http://gaodongchen.blshe.com/post/2760/701404