原创

网站和APP如何接入QQ登录功能

如果同一个应用有网站和app都需要接入QQ登录功能,请先到https://connect.qq.com/

创建网站应用,然后再到http://open.qq.com/

创建移动应用。创建移动应用的时候可以根据提示关联网站的appid,关联后两个应用的appid一致。

若同一个android应用需要接入IOS版本,需要先在管理中心里打开这个android应用,然后从这个界面右上角的平台信息里选择 IOS应用 进行申请。该操作可以保持申请的IOS应用与android应用的APP ID一致。(反之若先申请的IOS应用,关联操作步骤也一样)

原创文章转载请注明:来自Lenix的博客 地址 http://blog.p2hp.com/archives/5367

用PHP把 图片,文件上传到 mongodb gridfs 中

需要 php mongodb扩展, mongodb/mongodb 组件
安装 mongodb/mongodb 组件
composer require mongodb/mongodb
//把图片上传到 mongodb gridfs中
<?php
use \MongoDB\Client;

$host = '192.168.6.1:27018,192.168.6.2:27018';
$database = 'Images';
$bucket = (new \MongoDB\Client('mongodb://'.$host.'/'.$database,
[
'username'=>'admin',
'password'=>'admin',
//'ssl' => true,
// 'replicaSet' => 'myReplicaSet',
'authSource'=>'admin',
]) )->$database->selectGridFSBucket();

MySQL 5.7数据库新增字段报 Incorrect date value: ‘0000-00-00’ for column ‘endtime’ at row 2的问题

MySQL 5.7数据库新增字段报 Incorrect date value: ‘0000-00-00’ for column ‘endtime’ at row 2的问题

在数据库执行 ALTER TABLE `smt_announce` ADD `ischildarea` tinyint(1) DEFAULT ‘0’ COMMENT ‘是否下发到子区域站点0:否;1:是’;报以上错误

是因为数据库里的记录的 endtime字段,存在0000-00-00这样的值. …

symfony 4 框架安装与使用指南

symfony 4 框架安装与使用指南

注意:需要用PHP7.1版本进行操作。

创建一个新项目

第一步是创建项目。目前, 这需要通过composer create-project来完成。我们可能会释放一个工具来更快地引导项目。

走起:

composer create-project symfony/skeleton demo
cd demo

 

该命令将下载骨架, 该框架仅由一个composer.json文件组成。

 

然后, 它将文件提取到demo目录中, 并自动运行composer installsymfony/flex是要安装的第一个包, 以便它可以挂钩到Composer进程。当Composer安装 (或更新) 其他依赖项时, flex

如何防止PHP进程异常退出(进程被杀)?

背景

通常,在cli下运行的常驻后台PHP进程,可能异常退出,比如php执行过程中出现的致命错误,或被 kill 命令手动杀死等。如下面的php代码:

<?php
while(1){
    $content = fgets(STDIN);
    if(empty($content)){
        sleep(1);
    }
    //逻辑处理部分代码省略
}
?>

 

查错

我们使用register_shutdown_function可以跟踪到底是什么错误导致的进程退出。(想更多了解register_shutdown_function,请查看博文 妙用php中的register_shutdown_function和fastcgi_finish_request)加入了错误捕捉代码。如下:

<?php
$is_end = false;
function catch_error(){
        global $is_end;
        $time = date('Y-m-d H:i:s');
        $error = error_get_last();
        $msg = "$time [error]";
        if($is_end){
                

Win7 + Ubuntu 18.04 LTS (Bionic Beaver)双系统安装方法

这里介绍在win7的基础上,安装ubuntu 18.04 LTS,实现双系统启动。

首先,假设你已安装了windows 7系统。

一. 制作ubuntu U盘启动盘。

方法见http://blog.p2hp.com/archives/4123

ubuntu 安装文件下载地址 http://releases.ubuntu.com/bionic/ubuntu-18.04-desktop-amd64.iso

二. 把U盘插入电脑,重启电脑。(记得进入BIOS设置,把U盘选为第一启动设备)。…

[原创首发]关于如何正确使用PHP框架及如何选择框架之我见.

用PHP 开发程序这么多年了,今天想和大家谈谈如何正确使用PHP框架.

即关于PHP开发什么时候用框架,用不用框架,用什么框架,不同项目是否用不同框架,是否要学习多个框架,付出多少学习成本等问题.

先说一下,我用过的框架有:Swoole, Laravel, phalcon ,symfony, codeigniter, thinkphp.

这几个框架都有什么特点? 有没有做什么项目都通吃的框架?

先说一下swoole,swoole是用C写的PHP扩展,性能很高,通常用于写后台服务和网络通信程序.,但是对于一般的普通web程序它不太适合.并且学习难度大.当然如果你追求性能,写后台服务和接口还是适合的.

再说一下 Phalcon这个框架,同样的C写的全栈框架,以php扩展方式发布,性能可以说是最好的.但是因为一是英文的文档,要求你英文比较好.phalcon在国内用的人比较少,所以中文文档不多.phalcon写web程序和接口都是很好的.但不适合写后台服务.还有一点是这个框架虽然好,但是因为是C写的,如果有一些bug,就要等官方修复,或需要你懂C语言自己来修复.还有一点扩展性不好,如果你想加新功能,比如mongodb数据库支持,它是支持的,但是需要是老的php mongo扩展,用新的php mongodb扩展的话,就需要写php代码来实现,这就降低了性能.所以说这框架很好,但还是有一些不便.

其次是Laravel这个框架,最近可是风头正旺,号称最好的框架,以优雅著称.也像phalcon一样,用到了最新的一些概念:如composer,依赖注入,服务定位等.国内用的人也不少,中文文档及资料也比较多.但是我想说的是性能是这个框架的硬伤,新安装的laravel 5.1 框架 输出一个hello world 每秒rps 才达到几十, 而最 新发布的laravel 5.5 及性能居然还不及laravel 5.1版.究其原因是因为这个框架一启动就加载了一百多个文件,这就是性能很低的原因(IO开销很贵的!). 这个框架再好,但是性能太低,就需要拿硬件来支撑.除非你是土壕,否则还是不建议用Laravel 这个框架.

再说一下 thinkphp 这个框架.这个框架可以说是国内用得最多也是争议比较大的一个框架了.因为是国产框架,所以中文资料是最丰富的.像国内一些电商,cms,微信,社交程序等很多都是基于这个框架开发的,开源程序比较多.是一个非常接地气的框架.但是这个框架口碑有些不好是因为早期的thinkphp ,如3.1 ,3.2版性能比较低.二是有人出于对国产品牌的不信任,而不使用thinkphp框架.但是这种情况已在最新的thinkphp …

关于 php json API接口开发的注意问题

关于 php json接口开发的注意问题

一是注意跨域问题.需要加 Access-Control-Allow-Origin:*  http头.(针对于前端浏览器脚本调用接口)

二是如果请求的header里  Content-Type: 是 application/json,则需要用 file_get_contents(“php://input”);接收.如果用 swoole 框架的话,需要用$request->rawContent()接收.

如果请求header里Contente-Type是 multipart/form-data,或application/x-www-form-urlencoded或application/octet-stream
则需要用 $_POST($_GET)或$_FILES来接收.

Ps :js 代码调用接口示例如下

1.要加contentType: “application/json; charset=utf-8”,

2.需要使用JSON.stringify 转换json对象或把对象转为字符形式,如'{“aa”:22}'(json两边加单引号)

var submit_sync = function() {  
    $.ajax({  
        type: "post",  
        url: 'add-post-json.php',  
        async: false, // 使用同步方式  
        
Page 1 of 1112345...10...Last »