golang base64 编码与 PHP 输出不一致

最近开发中,将一个 php 算法,移植到 golang 中,发现 base64 算法生成的字符串不一致,经过排查发现是由于 ASCII 控制字符导致的原因,加下来看代码 <?php $asciiArr =[10, 187, 217, 12, 207, 183, 184, 231, 184, 149, 118, 151]; $str = ''; foreach ($asciiArr as $ascii) { $str .= chr($ascii); } echo base64_encode($str); 上述代码输出: CrvZDM+3uOe4lXaX package main import ( "encoding/base64" "fmt" ) func main() { res := []int{10, 187, 217, 12, 207, 183, 184, 231, 184, 149, 118, 151} var str string var b []byte for _, v := range res { str += string(v) b = append(b, byte(v)) } byteCode := base64....

June 16, 2021 · 1 min · 云溪

Composer 私有仓库搭建

Composer 是 PHP 的软件包管理系统,它提供用于管理 PHP 软件和依赖库关系的标准格式。作为日常开发,Composer 能够满足我们的日常需求,但有些情况下,我们有些公司内部的扩展,不希望被检索或者放在共有库中,就需要搭建私有库来解决问题。 在讨论搭建私有仓库前,我们先了解一下 Composer 是如何安装扩展的 Composer 安装扩展流程 通过上图我们不难发现,如果要构建私有仓库,我们需要构建一个类似 Packagist 的网站,来告诉 Composer 该从哪里下载扩展代码,这就需要用到 Satis 工具 Satis 介绍 Satis 是一个开源的静态 Composer 仓库生成器,有了它我们可以轻松的构建出一个类似 Packagist 的索引网站,来告诉 Composer 通过我们自己的私有仓库下载扩展。 安装 命令行安装 // 安装 composer create-project composer/satis:dev-main // 构建索引仓库 php bin/satis build <configuration-file> <output-directory> docker 安装 下载镜像: docker pull composer/satis 运行镜像: docker run --rm --init -it \ --user $(id -u):$(id -g) \ --volume $(pwd):/build \ --volume "${COMPOSER_HOME:-$HOME/.composer}:/composer" \ composer/satis build <configuration-file> <output-directory> 配置 创建一个名为:satis....

April 1, 2021 · 1 min · 云溪

PHP-FFMpeg 安装

安装 FFMPEG wget http://download.bt.cn/install/ext/ffmpeg.sh && sh ffmpeg.sh 安装完后可输入以下命令是否安装成功 ffmpeg -version 删除禁用函数 proc_open, exec, system 安装 PHP-FFMpeg composer require php-ffmpeg/php-ffmpeg 常见问题 Executable not found, proposed : avprobe, ffprobe php-fpm 在执行 FFMPEG 的时候,没有找到 ffprobe 和 ffmpeg 解决办法如下: 命令行解决 通过 shell 确定文件位置 whereis ffprobe /usr/local/bin/ffprobe which ffmpeg /usr/local/bin/ffmpeg 在初始化 FFMpeg 的时候将文件位置写入 $ffmpeg = FFMpeg::create([ 'ffmpeg.binaries' => '/usr/local/bin/ffmpeg', 'ffprobe.binaries' => '/usr/local/bin/ffprobe', ]); PHP 代码直接解决 // 写入 WWW 用户的环境变量 putenv('PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:$PATH'); // 通过 exec 函数找到文件对应位置 $ffmpeg = FFMpeg::create([ 'ffmpeg....

August 28, 2020 · 1 min · 云溪

CSV 中文解析异常

最近在做导入 csv 数据的时候出现了,未按预期导出的情况,具体情况见下图: 如图所示,商家地址部分和商家电话部分,没有正常解析。后来在PHP官网找到如下解释: 该函数对区域设置是敏感的。比如说 LANG 设为 en_US.UTF-8 的话,单字节编码的文件就会出现读取错误。 我系统语言设置的 en, 当解析 utf8 字节编码的文件,就出现了上述问题。 既然找到了是因为区域的问题,就号解决了,在导入前先设置一下区域: setlocale(LC_ALL, 'us'); 如果有疑问欢迎留言交流。 Reference fgetcsv

June 6, 2020 · 1 min · 云溪

Composer Could Not Find Config  [draft]

在执行 composer require xxx 发现始终无法执行成功 执行 composer require -vvv xxx 打印详细信息 发现报错信息如下: failed to initialize global composer composer could not find the config file 最后发现在系统里有两个 composer 配置,删除掉非安装目录下的环境变量(我这边是C:\Users\Administrator\AppData\Roaming\Composer\vendor\bin 注销电脑,重新执行 composer require -vvv xxx 安装成功

April 5, 2019 · 1 min · 云溪