Nginx 开启文件目录列表功能
使用的 LNMP 一键安装包
Nginx 虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
Nginx 主配置文件在:/usr/local/nginx/conf/nginx.conf

打开相应 conf 配置文件,添加
Continue reading Nginx 使用一些配置学习日志 LIUGUOFENG
使用的 LNMP 一键安装包
Nginx 虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
Nginx 主配置文件在:/usr/local/nginx/conf/nginx.conf

打开相应 conf 配置文件,添加
Continue reading Nginx 使用一些配置<?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() 来判断。
<?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() 动态获取参数的函数
学习 Python,如果你喜欢用 IDE ,可以试一下 Pycharm,社区版可以免费使用。或者也可以直接用个简单的文本编辑软件,比如 Atom。安装个 script 包,就可以直接在编辑器里运行 Python 代码了。
在系统上先安装一下 Python,用系统包管理工具可以很方法安装 Python,Windows 用 Chocolatey,macOS 用 Homebrew。
macOS 系统自带 Python 2,我们可以再用 Homebrew 安装一个 Python 3 。
brew install python3
完成以后可以使用 python3 这个命令行工具。
choco install pythonContinue reading Atom: 配置编辑器运行 Python
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.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']);
关于时间的理解太精彩,也许会重塑你的世界观。
中间变量(临时变量)
var strA = "a" var strB = "b" var strC strC = strB strB = strA strA = strC
若变量为数字,可使用加减法
//加法 var a = 2 var b = 3 a += b b = a - b a = a - b
//减法 a += b b = a - b a -= b
对象和数组
var a = "1" , b = "2"
对象的方法:
先把a变成一个对象,即
a={a:b,b:a}
b = a.a
a = a.b
数组的方法:
数组其实和对象的思想差不多
a = [a,b]
b = a[0]
a = b[1]
万能法(运用运算符优先级)
var a = "1", b= "code" a = [b, b=a][0] console.log(a,b)
ES6的解构赋值
什么是解构赋值?
解构赋值允许你使用类似数组或对象字面量的语法将数组和对象的属性赋给各种变量。这种赋值语法极度简洁,同时还比传统的属性访问方法更为清晰。
数组与迭代器的解构 语法:[ variable1, variable2, ..., variableN ] = array; 这将为variable1到variableN的变量赋予数组中相应元素项的值
可以去看看解构的赋值:http://es6.ruanyifeng.com/#docs/destructuring
let a = "one",b = "two"; [a, b] = [b, a]; console.log(a, b);//two one
利用try catch交换
var a=1,b=2;
a = (function () {;
try{
return b
} finally {
b = a
}
})();
或字符串
var a = "aaa",
b = "bbb";
a = (function () {;
try {
return b
} finally {
b = a
}
})();
console.log(a, b);
异或运算(针对数字)
var a = 1; // 二进制:0001 var b = 2; // 二进制:0010 a = a ^ b; // 计算结果:a = 0011, b = 0010 b = a ^ b; // 计算结果:a = 0011, b = 0001 a = a ^ b; // 计算结果:a = 0010, b = 0001 自己可以动手试一下 例子: var a = 0; var b = 1; a = (b = (a ^= b) ^ b) ^ a; console.log(a,b) 例子: var a = 0; // 二进制:0001 var b = 1; // 二进制:0010 a ^=b; b ^=a; a ^=b; console.log(a,b)
数组的两个值的交换
var arr = [item0,item1,...,itemN]; //最初使用这段代码来交换第0个和第K(k<N)个元素 arr[0] = arr.splice(k, 1, arr[0])[0]; var arr = [1,2,3,"aaa","bbb","ccc"]; arr[0] = arr.splice(3, 1, arr[0])[0]; console.log(arr.toString())//aaa,2,3,1,bbb,ccc
via: http://www.jianshu.com/p/fb863e73862f
在 app/config/database.php 中可以设置
<?php
return array(
'default' => 'mysql',
'connections' => array(
# Our primary database connection
'mysql' => array(
'driver' => 'mysql',
'host' => 'host1',
'database' => 'database1',
'username' => 'user1',
'password' => 'pass1'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
# Our secondary database connection
'mysql2' => array(
'driver' => 'mysql',
'host' => 'host2',
'database' => 'database2',
'username' => 'user2',
'password' => 'pass2'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
在 controller 中指定数据库
Schema::connection('mysql2')->create('some_table', function($table)
{
$table->increments('id'):
});
$users = DB::connection('mysql2')->select(...);
<?php
class SomeModel extends Eloquent {
protected $connection = 'mysql2';
}
<?php
class SomeController extends BaseController {
public function someMethod()
{
$someModel = new SomeModel;
$someModel->setConnection('mysql2');
$something = $someModel->find(1);
return $something;
}
}
具体有时间再翻译
via: http://fideloper.com/laravel-multiple-database-connections