MySQL学习 -- 数据库操作

创建数据库

基本语法 create database 数据库名 [库选项];

库选项:数据库的相关属性(可有可无)

字符集:charset 字符集

校对集:collate 校对集

阅读更多

PHP学习 -- 两种方法实现斐波那契数列

什么是斐波那契数列

斐波那契数列的定义者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci),生于公元1170年,卒于1250年,籍贯是比萨。他被人称作“比萨的列昂纳多”。1202年,他撰写了《算盘全书》(Liber Abacci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯等地研究数学。

斐波那契数列指的是这样一个数列
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…… 这个数列从第3项开始,每一项都等于前两项之和。

阅读更多

PHP学习 -- 数组相关的函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php

// 数组相关的函数

// 1. 排序函数

$arr = array(3,2,9,6,4,1,0);

echo '<pre>';

sort($arr); // 按照值顺序排 不保留下标 重排

// asort($arr); // 按照值顺序排 保留下标

// ksort($arr); // 按照键顺序排

// krsort($arr); // 按照键逆序排

//shuffle($arr);

print_r($arr);

<!-- more -->

shuffle($arr); // 随机排序

print_r($arr);

// 2. 指针函数

echo '<hr>';

$arr1 = array('wnagyu',15,'hui',5,9,3,1);

echo current($arr1),'<br>'; // 查看当前指针

echo key($arr1),'<br>'; // 查看当前key

echo next($arr1),next($arr1),'<br>'; // 移动指针到下一个

echo prev($arr1),'<br>'; // 移动指针到上一个

echo key($arr1),'<br>';

echo '<pre>';

print_r($arr1);

echo '<hr>';

echo end($arr1),'<br>'; // 重置指针 返回最后一个值

echo reset($arr1),'<br>'; // 重置指针 返回第一个值

// 3. 其他函数

// array_push() 往数组中加入一个元素 (数组后面)

// array_pop() 从数组中取出一个元素 (数组后面)

// array_shift() 从数组中取出一个元素 (数组前面)

// array_unshift() 往数组中加入一个元素 (数组前面)

$arr2 = array('tg',5,'po',1,3,9,12,56);

// 模拟数据结构

// 栈 先进后出

array_push($arr2,45);

echo '<pre>';

print_r($arr2);

array_pop($arr2);

echo '<pre>';

print_r($arr2);

// 队列 先进先出

// array_push() 后进 array_shift() 先出

// array_unshift() 前进 array_pop() 后出

$arr3 = [1,3,6,9,15,8];

echo '<pre>';

print_r(array_reverse($arr3)); // 反转数组

var_dump(in_array(1,$arr3)); // 查找值是否存在于数组中,返回true/false

var_dump(in_array(123,$arr3));

print_r(array_keys($arr3)); // 返回下标 数组

print_r(array_values($arr3));// 返回值 数组

PHP学习 -- 全局变量和局部变量

全局变量

PHP的全局变量和JS里面的全局变量不一样,JS里面的全局变量是那都可以访问到,PHP里的全局变量只有函数内部访问不到

1
2
3
4
5
6
7
8
<?php

$a = 1;
function main(){
echo $a; // 错误,函数内部访问不到全局变量
}

?>
阅读更多

入门Vuex

State

获取State中的值的三种方法

  1. 直接在模板里面写
1
<p>{{ $store.state.count }}</p>
  1. 通过计算属性
1
2
3
4
5
computed: {
count(){
return this.$store.state.count
}
}
阅读更多

node 图片验证码库

验证码演示

有库不用是傻逼,这个库有三组图片分别是red gray green ,其中red里面只是数字,不建议使用,剩下两个有字母和数字。

下面是一个老外写的例子,我就是直接参考它写的代码的。https://github.com/liangzeng/validat-num-demo

代码

1
2
3
4
5
6
7
8
9
10
11
12
var PW = require("png-word");
var pw = PW(PW.GRAY); //这里可以选GRAY PNGWord RED
var r = require("random-word")("abcdefghijklmnopqrst0123456789");

const validat = (req, res) => {
var numtxt = req.session.validat_num = r.random(4);
pw.createPNG(numtxt,function(pngnum){
res.send(pngnum);
})
}

module.exports = validat
阅读更多

关于 can't set headers after they are sent 错误解析

错误描述

这个错误翻译过来是在headers发送过以后不能再次发送。意思是发送了两次headers,所以会报错。

然后通过我的不懈努力,终于找到了问题所在。

解析

在处理HTTP请求时,服务器会先输出响应头,然后再输出主体内容,而一旦输出过一次响应头比如执行过 res.writeHead() 或 res.write() 或 res.end(),你再尝试通过 res.setHeader() 或 res.writeHead() 来设置响应头时,就会报这个错误。

有些方法比如 res.redirect() 会调用 res.writeHead()

说明:express中的 res.header() 相当于 res.writeHead() ,res.send() 相当于 res.write()

node.js爬虫练习 爬取数据存储到mongodb

youkumovie(优酷电影目录)

本人的node.js爬虫练习,大神无视,一直更新,爬虫爬到数据存储到数据库中。数据库为mongodb。总共30页,每3秒爬一次,到目前为止亲测没有被封ip,本人第一次写爬虫,大家多多包涵!

用到的库

1
2
3
4
"cheerio": "^1.0.0-rc.2",
"mongodb": "^2.2.33",
"request": "^2.83.0",
"request-promise": "^4.2.2"
阅读更多

利用浏览器抓包获取百度网盘真实下载链接

注:至发文日此方法一直可用。获取到的下载链接可以复制到任意下载软件下载,推荐用idm等国外下载软件,实测迅雷速度不怎么样。不管是多大的文件都可以获取到!

第一步

打开浏览器,我用chrome做的演示,登录百度云

第二步

按F12打开开发者模式,切换至network选项。选择你要下载的文件,点击下载。

第三步

在右侧找到一个已download开头的url,找不到可以直接搜索。点击previve,展开数据,dlink:””,引号里面就是下载链接

第四步

复制链接到迅雷可以下载