Git “Could not read from remote repository.Please make sure you have the correct access rights.”解决方案

我们在使用 git push 或 clone 或其他命令的时候,有时候会遇到这类问题,如图:

fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

出现这个问题是因为没有在 github 账号添加 SSH key Continue reading Git “Could not read from remote repository.Please make sure you have the correct access rights.”解决方案

What is Going On

超感猎杀 Sense8 S01E04 43’11’00’ What’s Up Continue reading What is Going On

不使用 PHP 内置函数 使用方法写一个字符串反转的函数

<?php
function str_rev($str){
    for($i = 0;true;$i++){
        if(!isset($str[$i])){
            break;
        }
    }
    $return = "";
    for($j=$i-1;$j>=0;$j--){
        $return .= $str[$j];
    }
    return $return;
}
echo str_rev('abcdefg');

输出:

gfedcba

重点:字符串可以当数组来使用。

字符串中的字符可以通过一个以0为开始的,用类似数组结构中的方括号包含对应的数字来查找和修改,比如 $str[42], 可以把 字符串想像数组 。

跳出循环,使用 isset() 来判断。

不使用 array_merge() 实现多个数组的合并

<?php
function array_mer(){
    $return = [];
    $array = func_get_args();
    foreach($array as $arr){
        if(is_array($arr)){
            foreach($arr as $val){
                $return[] = $val;
            }
        }
    }
    return $return;
}
var_dump(array_mer([1],[1,2],[3,5]));

输出:

array(5) {
  [0]=>
  int(1)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(5)
}

重点:func_get_args() 动态获取参数的函数

Atom: 配置编辑器运行 Python

学习 Python,如果你喜欢用 IDE ,可以试一下 Pycharm,社区版可以免费使用。或者也可以直接用个简单的文本编辑软件,比如 Atom。安装个 script 包,就可以直接在编辑器里运行 Python 代码了。

安装 Python

在系统上先安装一下 Python,用系统包管理工具可以很方法安装 Python,Windows 用 Chocolatey,macOS 用 Homebrew。

macOS 用户:

macOS 系统自带 Python 2,我们可以再用 Homebrew 安装一个 Python 3 。

brew install python3

完成以后可以使用 python3 这个命令行工具。

Windows 用户:

choco install python
Continue reading Atom: 配置编辑器运行 Python

关于 Linux 的 nobody 用户

1、Windows系统在安装后会自动建立一些用户帐户,在Linux系统中同样有一些用户帐户是在系统安装后就有的,就像Windows系统中的内置帐户一样。

2、它们是用来完成特定任务的,比如 nobody 和 ftp 等,我们访问网页程序时,官网的服务器就是让客户以 nobody 身份登录的 (相当于 Windows 系统中的匿名帐户) ; 我们匿名访问 ftp 时,会用到用户 ftp 或 nobody。

3、首先,nobody 是一个普通用户,非特权用户。 使用nobody用户名的’目的’是,使任何人都可以登录系统,但是其 UID 和 GID 不提供任何特权,即该uid和gid只能访问人人皆可读写的文件。
4、其次,许多系统中都按惯例地默认创建一个 nobody,尽量’限制它的权限至最小’,当服务器向外服务时,可能会让 client 以 nobody 的身份登录。

5、nobody 就是一个普通账户,因为默认登录shell是 ‘/sbin/nologin’,所以这个用户是无法直接登录系统的,也就是黑客很难通过漏洞连接到你的服务器来做破坏。此外这个用户的权限也给配置的很低。因此有比较高的安全性。一切都只给最低权限。这就是 nobody 存在的意义。

PHP 分布式中 Redis 实现 Session 共享

找到配置文件php.ini,修改为下面内容,保存并重启服务

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

直接在代码中加入以下内容:

ini_set("session.save_handler", "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379");

测试:

<?php
//ini_set("session.save_handler", "redis");
//ini_set("session.save_path", "tcp://127.0.0.1:6379");

session_start();

//存入session
$_SESSION['class'] = array('name' => 'toefl', 'num' => 8);

//连接redis
$redis = new redis();
$redis->connect('127.0.0.1', 6379);

//检查session_id
echo 'session_id:' . session_id() . '<br/>';

//redis存入的session(redis用session_id作为key,以string的形式存储)
echo 'redis_session:' . $redis->get('PHPREDIS_SESSION:' . session_id()) . '<br/>';

//php获取session值
echo 'php_session:' . json_encode($_SESSION['class']);