PECL、PEAR、phpize、composer 的区别和联系

2018-5-6 liyangweb.com 李杨 PHP

首先,我们先分别了解一下这四个东西的官方介绍。

PECL:

PECL是PHP扩展的存储库,提供了所有已知的扩展和托管设施的目录,用于下载和开发PHP扩展。

PECL使用的包装和分配系统与它的姐妹PEAR共享。

PEAR:

PEAR是一个可重用PHP组件的框架和分发系统。

phpize:

用 phpize 编译共享 PECL 扩展库。

有时候不能用 pecl 安装命令。这可能是因为在防火墙后面,或者是因为想要安装的扩展库还没有 PECL 兼容的包,例如 SVN 中尚未发布的扩展库。如果要编译这种扩展库,可以用更底层的编译工具来手工进行编译。

Composer:

是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

阅读全文>>

评论(0) 浏览(72)

微擎最新版SQL注入

2017-9-28 liyangweb.com 李杨 PHP


简介:

htmlspecialchars_decode 函数对全局过滤gpc产生的 \’ 进行转义,将可控的参数$html的污染值插入数据库后,产生SQL注入漏洞。

路径:

/网站根目录/web/source/site/editor.ctrl.php

披露时间: 

2017-06-02 08:19:47


阿里云给出的解决方案并不是修改此文件,而是修改/网站根目录/web/source/founder/display.ctrl.php


在第14行的如下代码后


$founders = explode(',', $_W['config']['setting']['founder']);

增加

$identity = uni_permission($_W['uid']);
if ($identity != ACCOUNT_MANAGE_NAME_FOUNDER && $identity != ACCOUNT_MANAGE_NAME_VICE_FOUNDER) {
    itoast('???????', referer(), 'error');
}

评论(1) 浏览(2219)

Yii2自动生成接口文档插件 yii2-doc-online

2017-8-29 liyangweb.com 李杨 PHP

    眼下前后端完全分离的开发模式是越来越火,好多项目都直接摒弃了常规的套页面方式,而改用前端控制主要业务逻辑,后端只提供接口数据的模式。这样一来,前后端就需要频繁的沟通接口含义。于是一个好的接口文档总是能事半功倍的,但是后台开发人员开发出接口后,写接口文档又是一个麻烦的事情,费时费力不说,当接口改动时,还要时刻记着去修改接口文档。

    介于本人平时需要开发很多接口,也要写很多文档,于是决定开发一款可以自动生成接口文档的小工具——yii2-doc-online,只要开发人员按照规范写好注释,那么接口文档就会自动生成了。

阅读全文>>

标签: yii2 yii2-doc-online

评论(5) 浏览(1601)

<转>微信素材上传返回提示 "errcode":41005的原因以及以及解决方案

2017-6-12 liyangweb.com 李杨 PHP

【原因】:由于不同php版本导致curl方法用法有所改变导致的

【解决方案】:将自己即将要进行微信请求的数据适当处理一下,如下:
例如未处理的数据如下

$data=array(
    'media'=>'@'.'自己的文件路径'
);


上面的格式微信官方文档也是这样的写的,但是如果你php版本>=5.6后,这种写法就会导致文件无法进行上传到微信服务器最保险的做法如下(兼容所有php版本),将上面的数组作如下处理

if (class_exists('\CURLFile')) {
    $data[$k] = new \CURLFile(realpath($this->getImage($v, $file_name)));
} else {
    $data[$k] = '@'.realpath($this->getImage($v, $file_name));
}
【为什么要这么做?】:

阅读全文>>

标签: 微信

评论(1) 浏览(845)

php使用glob方法引入多个文件

2017-5-26 liyangweb.com 李杨 PHP

有时候我们有这样的需求,一个项目的入口处,需要引入多个配置文件,最简单粗暴的方法是这样的。


require(__DIR__.'/config/database.php');
require(__DIR__.'/config/redis.php');
require(__DIR__.'/config/memcache.php');


这样引入自然是可以的,但是有两个问题:

阅读全文>>

标签: PHP

评论(0) 浏览(787)

完全卸载yum安装的php

2017-4-16 liyangweb.com 李杨 PHP

使用yum安装了php后,用yum remove php命令删除php,但是再次使用php -v命令,还能看到之前的版本号,说明php并没有删除干净,如果想删除干净,需要逐一删除php依赖的rpm包。

阅读全文>>

评论(1) 浏览(2867)

array_map函数如何传递多个参数

2017-2-25 liyangweb.com 李杨 PHP

此博文仅仅讨论array_map传递多个参数的写法。

array_map有很多妙用,在我之前的一篇博文里面已经有了比较详细的介绍,详情见此:http://www.liyangweb.com/php/220.html

阅读全文>>

标签: array_map

评论(0) 浏览(2776)

php获取当前浏览器完整地址

2017-2-23 liyangweb.com 李杨 PHP

 <?php
/**
 * 获取当前页面完整URL地址
 */
function get_url() {
    $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';
    $php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
    $path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
    $relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info);
    return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;
}
 
echo get_url();
?>

评论(0) 浏览(963)

编译安装php时遇到virtual memory exhausted: Cannot allocate memory

2016-11-3 liyangweb.com 李杨 PHP

由于我的虚拟主机内存比较小,是512M的,今天在编译PHP7的时候遇到了一个问题,在make的时候提示 virtual memory exhausted: Cannot allocate memory 。意思很明白,就是说内存不够用了。

阅读全文>>

标签: PHP

评论(0) 浏览(1785)

连接mysql数据库时,SQLSTATE[HY000] [2002] No such file or directory 的解决办法

2016-10-30 liyangweb.com 李杨 PHP

SQLSTATE[HY000] [2002] No such file or directory

阅读全文>>

标签: PHP

评论(5) 浏览(15273)

Powered by emlog 冀ICP备13011830号-1