PHP UTC转GMT时区

很长时间没有写blog了,并不是因为我偷懒了,而是最近没什么好写的东西,今天就费劲挤出一些东西,写一篇blog。

背景:公司的项目海外市场比较多,所以需要兼容多时区问题。这块也是一个比较头疼的问题。

Read More »

PHP curl传送json数据

PHP curl传送json数据

说句实话,写PHP也有几年了,不过感觉技术还是渣的不行。前段时间给公司的机器人写接口,客户端的哥哥打算用json上报数据。这可憋闷死我了,因为以前都是直接使用form表单的形式,也就是键值对。没办法,只能双方商量一下,改用键值对的方式了。(大写的尴尬)

今天终于找到了使用json互传数据的办法了。用到的主要函数是curl,file_get_contents()和json_decode()。

Read More »

PHP 底层:PHP的生命周期

一切开始:SAPI接口

SAPI 是Server Application Programming Interface 的简称,意思就是说,服务应用编程接口,PHP所有接口都是在这和系统进行交互。就像pc一样,无论安装在哪个系统,只要满足接口,都是可以正常运行的。PHP的脚本有很多运行方式,大多数是运行在web服务器,比如Apache或者nginx,或者命令行(CLI),或者嵌入其他程序里。

Read More »

PHP7 拓展编写–在拓展中调用函数

PHP中调用函数都比较简单,今天要实现如下效果的代码

<?php
class demo {
    public function get_site_name($prefix)
    {
        return $prefix . "肥龙的博客\n";
    }
}

function get_site_url($prefix)
{
    return $prefix . "www.feilong.tech\n";
}

function call_function($obj, $fun, $param)
{
    if ($obj == null)
    {
        $result = $fun($param);
    }
    else
    {
        $result = $obj->$fun($param);
    }
    return $result;
}
$demo = new demo();
echo call_function($demo, "get_site_name", "site name:");
echo call_function(null, "get_site_url", "site url:");
?>

Read More »

NodeJs Error: Can”t set headers after they are sent.怎么解决?

从字面的意思来说:不能发送header,因为已经发送过一次了。

我的程序之所以出现这种情况,是因为多次使用res.sent()

原因:在处理HTTP请求时,服务器会先输出响应头,然后再输出主体内容,而一旦输出过一次响应头(比如执行过 res.writeHead()res.write()res.end()),你再尝试通过 res.setHeader()res.writeHead() 来设置响应头时(有些方法比如 res.redirect() 会调用 res.writeHead()),就会报这个错误。

解决办法:在调用函数后面加上return; 终止,这样就搞定了。