PHP7中有比较重要的两个新改动:
1. mysql系列函数被移除
mysql系列函数(mysql_connect, mysql_query …),在PHP 5.5.0 起已经被标记为废弃状态,并在PHP7版本中已经移除,官方更加推荐使用mysqli系列函数,或者PDO进行数据库的相关操作。
2. $HTTP_RAW_POST_DATA 被移除
同样的,$HTTP_RAW_POST_DATA变量在PHP 5.6.0 中被标记为废弃状态,在PHP 7中已经移除,因此,需要使用 php://input 作为替代。
基本上$GLOBALS['HTTP_RAW_POST_DATA']
和 $_POST
是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用$GLOBALS[‘HTTP_RAW_POST_DATA’]来接收,比如 text/xml 或者 soap 等等。
php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype=”multipart/form-data”。
例子:
客户端是个表单
<form action="" method="POST">
name: <input type="text" name="name" value="tom" /><br />
age:<input type="text" name="age" value="22" /><br />
<input type="submit" value="Submit" />
</form>
将表单提交到服务端,服务端使用file_get_contents获取php://input内容
$content = file_get_contents("php://input");
echo $content; //输出name=tom&age=22