• 认真地记录技术中遇到的坑!

PHP问题记录

PHP 悠悠 2年前 (2017-08-11) 641次浏览 0个评论

这儿记录一些PHP使用过程中遇到的问题已经相应的解决方案。

PHP网页程序运行超时

问题

运行网页的时候,抛出异常:Maximum execution time of 30 seconds exceeded

原因

网页PHP代码执行时间超过了默认的30秒导致。

解决办法

修改PHP配置,增高运行时间,php.ini 文件中的配置项

max_execution_time 30
# 默认运行时间30秒,适当调整
max_execution_time 60

或者在预估运行时间超过30秒的PHP代码中加入下面这条语句。此方法在PHP运行与安全模式下时不生效。

set_time_limit(0) ;// 0表示不限时

PHP composer设置忽略本机的PHP版本

composer install --ignore-platform-reqs
composer update --ignore-platform-reqs

PHP数据插入时获取插入时的id

当需要插入的数据关联多张表时,往往需要知道插入表的数据的id。可以使用下边三种方式。

  1. mysql_query(“select max(id) from table_name”,$connection); 该方法获取的是最大的id,即最后一个,多线程时不适用。
  2. msyql_insert_id($connection);  $connection 链接执行完插入语句以后,会返回插入的id给PHP,PHP可以直接使用该函数获取,而不用再查询数据库。
  3. msyql_query(“select last_insert_id()”);  last_insert_id() 是mysql 一个函数,返回最后一次插入的id。

以上三种方式中的 mysql 在PHP5.3以上版本可以使用 mysqli 替换。

PHP获取使用POST raw 方式提交的数据

解决办法:$data = file_get_contents(“php://input”);

php://input 是个可以访问请求的原始数据的只读流,和 $HTTP_RAW_POST_DATA 相同,php://input 使用更加广泛。

POST 请求方式的数据个请求头部 Content-Type 密切相关:

  1. application/x-www-data-urlencoded : php://input 和 $_POST 数据一致
  2. application/x-www-data-urlencoded 和 multipart/form-data :PHP会将http请求数据包中相应的数据填入全局变量$_POST
  3. Coentent-Type为multipart/form-data:PHP不会将http请求数据包中的相应数据填入php://input,否则其它情况都会
  4. PHP会将PATH字段的query_path部分,填入全局变量$_GET。通常情况下,GET方法提交的http请求,body为空

PHP 操作 cookie

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。

  1. setcookie() 函数用于设置 cookie:setcookie(name, value, expire, path, domain)
  2. setcookie() 函数必须位于 <html> 标签之前
  3. PHP 的 $_COOKIE 变量用于取回 cookie 的值:$_COOKIE[“user”]
  4. 当删除 cookie 时,您应当使过期日期变更为过去的时间点:setcookie(“user”, “”, time()-3600)

 

PHP json_encode 格式化

需要对 json_encode 的字符串有换行空格等,便于查看,使用下面的语句。

json_encode($params, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);

CentOS/Linux Composer安装

首先下载 composer.phar:

curl -sS https://getcomposer.org/installer | php

# 验证,查看版本
./composer.phar -V

然后添加到环境变量

mv composer.phar  /usr/local/bin/composer
ln -s /usr/local/php  /usr/local/bin/php

转载请注明出处 PHP问题记录
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址