MySQL8.0.16修改默认文字编码方法

按照网络上的旧方法,尝试修改了一个晚上,brew重装了好多次mysql了,还没搞定。

找到简书上一个大哥的方法,测试成功,特地写个备忘。

[mysqld]
# Only allow connections from localhost
bind-address = 0.0.0.0
socket = /tmp/mysql.sock
default-storage-engine=INNODB

loose_mysqlx_port=33060

character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'


[client]
default-character-set = utf8mb4
socket = /tmp/mysql.sock

[mysql]
default-character-set = utf8mb4

泪流满面啊

如何在你的网站上加上IPV6检测功能

现在中国政府正在大力推进ipv6行业发展,个人的小网站可以追一追潮流,具体效果看右侧(手机端在最下面)。

话不多说,直接贴代码,此代码依赖jQuery

<span id="ipv6-span" style="color:red;">你的网络不支持IPV6</span>
<br>
<span id="ipv4-span" style="color:red;">你的网络不支持IPV4</span>
<script>
    jQuery.ajax({
        url: 'https://v4.yinghualuo.cn/bejson',
        type: 'get',
        dataType: 'json',
        success: function(json) {
            jQuery('#ipv4-span').css('color', 'green');
            jQuery('#ipv4-span').html('你的网络完美支持IPV4<br>' + json.ip);
        }
    });
    jQuery.ajax({
        url: 'https://v6.yinghualuo.cn/bejson',
        type: 'get',
        dataType: 'json',
        success: function(json) {
            jQuery('#ipv6-span').css('color', 'green');
            jQuery('#ipv6-span').html('你的网络完美支持IPV6<br>' + json.ip);
        }
    });
</script>

如果您需要在您的网站上调取此跨域请求接口,请联系博主批准后再正式运营。博主不能保证未批准的服务稳定性

ThinkPHP5 框架redis配置

看了半天官方文档 https://www.kancloud.cn/manual/thinkphp5_1/354116

硬是没测试出来怎么写连接到redis配置,于是干搓源码,看到如何写redis配置

/config/cache.php

return [
    // 驱动方式
    'type' => env('CACHE_TYPE', 'File'),
    'path' => '',
    'prefix' => 'app_name_',
    'expire' => 0,
    'host' => env('REDIS_HOST', '127.0.0.1'),
    'password' => env('REDIS_PASSWORD', ''),
];

写个配置示例,作为备忘

php7.4新语法

// A collection of Post objects
$posts = [/* … */];

$ids = array_map(fn($post) => $post->id, $posts);

上面这个代码等同于下面

$ids = array_map(function ($post) {
    return $post->id;
}, $posts);

使用时有几个注意事项:

  • php7.4才开始支持此语法
  • 以fn关键字开始
  • 只允许有一条语句,一般是return 那句话
  • return关键字可以省略
  • 参数类型和返回类型可以声明

声明类型写法如下:

$ids = array_map(fn(Post $post): int => $post->id, $posts);

如果你想返回一个引用类型,可以这么写:

fn&amp;($x) => $x

还有个特性,在匿名函数里面,引入外部变量时,不需要显式use那个变量

$modifier = 5;

array_map(fn($x) => $x * $modifier, $numbers);

以上的代码,$modifier变量在闭包函数中修改值后,在外部的$modifier不会改变其值,但是$this关键字是给例外。

array_map(fn($x) => $x * $this->modifier, $numbers);

Chrome屏蔽烦人的百度搜索热点(无聊的新闻)

开发时,在百度上搜索一些资料时,总是不经意看到百度搜索热点的一些新闻,然后经不住诱惑的标题就不经意间点了进去,然后就是连锁反应了。。等再次回到开发时已经是半小时之后的事了。又要把想要的东西重新捋一遍,导致开发效率低下。为了避免这种情况,只好在网上想办法,发现了一款广告屏蔽软件,之前虽然也在用,但是没想到有如此个性化的功能。

下载Adblock Plus插件:

打开
https://chrome.google.com/webstore/detail/adblock-plus-free-ad-bloc/cfhdojbkjhnklbpkdaibdccddilifddb 安装Adbock Plus插件

安装好了,去设置一下插件,在高级里面添加如下规则:

www.baidu.com##div[tpl=”right_toplist1″]

上面的规则在后期需要更改,如果失效了,请私聊博主。屏蔽完成后美滋滋地撸代码了

关于PHP程序员技术职业生涯规划 韩天峰

看到很多PHP程序员职业规划的文章,都是直接上来就提Linux、PHP、MySQL、Nginx、Redis、Memcache、jQuery这些,然后就直接上手搭环境、做项目,中级就是学习各种PHP框架和类库,高级阶段就是MySQL优化、PHP内核与扩展、架构设计这些了。

这些文章都存在一个严重的缺陷,不重视基础。就好比练武功,只求速成,不修炼内功和心法,只练各种招式,这样能高到哪里去?我所见过的PHP大牛每一个都是具备非常扎实的基础,他们之所以能成为大牛,是因为基础足够好。基础不稳,面对技术复杂的系统,如同盲人摸象、管中窥豹,只得其门不得其法。而且如果基础不扎实,也没办法进入大公司。国外的Google、Facebook,国内的腾讯、阿里、百度、滴滴、京东、新浪等知名互联网企业,无论哪一家公司面试必然会考验应聘者的技术功底。无法进入一个拥有大规模并发请求的项目中得到历练,不坚持提升自己,那也只能在小公司混日子了。

我最开始工作也是在2家小公司,后来加入腾讯阿里,主要原因还是我坚持学习基础知识,从而得倒了这个机会。有几个方面的基础知识,我建议每一位PHP程序员都应该好好学习一下。我推荐几本书给大家,包括深入理解计算机系统、现代操作系统、C程序设计语言、C语言数据结构和算法、Unix环境高级编程、TCP/IP网络通信详解。另外我建议大家学习一下面向对象方面知识,PHP这方面的书不太多,建议看Java面向对象编程、Java编程思想、J2EE这些书。PHP语言基础方面,建议认真地把PHP5权威编程这本书好好读完。另外不光要读,还要照着书中的讲解动手去编程实践。

总之有一个好的基础,再去学LAMP、Redis、PHP框架、前端,这样取得的成就更大。这与年龄无关、与学历无关、与智力无关,与天赋也无关。只要肯努力学习,人人可以成为技术大牛。

转载自: http://rango.swoole.com/archives/570

获取本机公网IP地址接口

自从新浪通用接口

http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&amp;ip=218.4.255.255

凉了之后,要找个靠谱的接口非常重要,下面提供一个免费的接口,这个接口是由www.pubyun.com提供的,老牌DDNS服务商(原名:希网 3322)公云

http://members.3322.org/dyndns/getip