使用phpstudy,报错问题

1
Internet.......500

这种问题,除了网上所说的常见问题外,还有可能就是因为,你配置了虚拟域名,vhost-ini文件没有生产配置文件导致的,
你用PHPstudy直接打开配置文件,照着之前的配置改一下就ok了。

tp5页面跳转

tp5页面跳转是非常方便的,但是如果页面用到了需要记录状态的操作,浏览器一跳转就会刷新没了,比如你的tabs选项卡,
暂时我也没有找到更好的办法,就记录下我当时的解决方案吧,直接上代码:

1
2
3
4
5
6
7
8
window.onload=function(){
var getIndexNum = sessionStorage.getItem('active');
$('#'+ getIndexNum).addClass('active').siblings().removeClass('active');
// sessionStorage.setItem('active',null);
}
function active(i,id) {
sessionStorage.setItem('active',id);
}

方法也很简单的,就是给tabs绑定点击事件,点击同时把id给浏览器,记住这个id,
每次页面刷新后就获取下这个id,有就去匹配tab的id,设置选中的样式。只是提供个思路,仅仅是个解决问题的思路。

PHP制作微信宫格头像

这是我从网上copy的,但是当图片是3个一下时,就会报错,原因不详,也许和画布有关系吧,不太懂,我试着摸索的改了几个坐标值
,可以实现效果,(注释的是网上co下来的,我改了几个坐标可以勉强实现功能)直接上代码:

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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
public function mergerPicture()
{
$pic_list = array(
'http://img2.woyaogexing.com/2017/12/22/899b4898540220ed!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/12/22/1f1ac11c3dbfa9c3!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/12/22/bfe8d1746b3dd070!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/12/22/859b2340387abaaf!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/12/12/6d49a5ff1cb61326!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/12/12/849d33113c5bfc05!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/11/28/753e0dd79217399d!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/10/25/898b1cb67f21d7af!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/12/22/f6484acf3414ecc4!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/12/22/ff943af22751a3da!400x400_big.jpg',
// 'http://img2.woyaogexing.com/2017/12/22/899b4898540220ed!400x400_big.jpg',
);
shuffle($pic_list);
$pic_list = array_slice($pic_list, 0, 9); // 只操作前9个图片
$bg_w = 150; // 背景图片宽度
$bg_h = 150; // 背景图片高度
$background = imagecreatetruecolor($bg_w,$bg_h); // 背景图片
$color = imagecolorallocate($background, 255, 255, 255); // 为真彩色画布创建白色背景,再设置为透明
imagefill($background, 0, 0, $color);
imageColorTransparent($background, $color);
$pic_count = count($pic_list);
$lineArr = array(); // 需要换行的位置
$space_x = 3;
$space_y = 3;
$line_x = 0;
switch($pic_count) {
case 1: // 正中间
// $start_x = intval($bg_w/4); // 开始位置X
// $start_y = intval($bg_h/4); // 开始位置Y
// $pic_w = intval($bg_w/2); // 宽度
// $pic_h = intval($bg_h/2); // 高度
// break;

$start_x = 4; // 开始位置X
$start_y = 4; // 开始位置Y
$pic_w = $bg_w - 8; // 宽度
$pic_h = $bg_h - 8; // 高度
break;
case 2: // 中间位置并排
// $start_x = 2;
// $start_y = intval($bg_h/4) + 3;
// $pic_w = intval($bg_w/2) - 5;
// $pic_h = intval($bg_h/2) - 5;
// $space_x = 5;
// break;
$start_x = 76; // 开始位置X
$start_y = 5; // 开始位置Y
$pic_w = intval($bg_w/2) - 5; // 宽度
$pic_h = intval($bg_h/2) - 5; // 高度
$lineArr = array(2);
$line_x = 4;
break;
case 3:
$start_x = 40; // 开始位置X
$start_y = 5; // 开始位置Y
$pic_w = intval($bg_w/2) - 5; // 宽度
$pic_h = intval($bg_h/2) - 5; // 高度
$lineArr = array(2);
$line_x = 4;
break;
case 4:
$start_x = 4; // 开始位置X
$start_y = 5; // 开始位置Y
$pic_w = intval($bg_w/2) - 5; // 宽度
$pic_h = intval($bg_h/2) - 5; // 高度
$lineArr = array(3);
$line_x = 4;
break;
case 5:
$start_x = 30; // 开始位置X
$start_y = 30; // 开始位置Y
$pic_w = intval($bg_w/3) - 5; // 宽度
$pic_h = intval($bg_h/3) - 5; // 高度
$lineArr = array(3);
$line_x = 5;
break;
case 6:
$start_x = 5; // 开始位置X
$start_y = 30; // 开始位置Y
$pic_w = intval($bg_w/3) - 5; // 宽度
$pic_h = intval($bg_h/3) - 5; // 高度
$lineArr = array(4);
$line_x = 5;
break;
case 7:
$start_x = 53; // 开始位置X
$start_y = 5; // 开始位置Y
$pic_w = intval($bg_w/3) - 5; // 宽度
$pic_h = intval($bg_h/3) - 5; // 高度
$lineArr = array(2,5);
$line_x = 5;
break;
case 8:
$start_x = 30; // 开始位置X
$start_y = 5; // 开始位置Y
$pic_w = intval($bg_w/3) - 5; // 宽度
$pic_h = intval($bg_h/3) - 5; // 高度
$lineArr = array(3,6);
$line_x = 5;
break;
case 9:
$start_x = 5; // 开始位置X
$start_y = 5; // 开始位置Y
$pic_w = intval($bg_w/3) - 5; // 宽度
$pic_h = intval($bg_h/3) - 5; // 高度
$lineArr = array(4,7);
$line_x = 5;
break;
}
foreach( $pic_list as $k=>$pic_path ) {
$kk = $k + 1;
if ( in_array($kk, $lineArr) ) {
$start_x = $line_x;
$start_y = $start_y + $pic_h + $space_y;
}
$pathInfo = pathinfo($pic_path);
switch( strtolower($pathInfo['extension']) ) {
case 'jpg':
case 'jpeg':
$imagecreatefromjpeg = 'imagecreatefromjpeg';
break;
case 'png':
$imagecreatefromjpeg = 'imagecreatefrompng';
break;
case 'gif':
default:
$imagecreatefromjpeg = 'imagecreatefromstring';
$pic_path = file_get_contents($pic_path);
break;
}
$resource = $imagecreatefromjpeg($pic_path);
// $start_x,$start_y copy图片在背景中的位置
// 0,0 被copy图片的位置
// $pic_w,$pic_h copy后的高度和宽度
imagecopyresized($background,$resource,$start_x,$start_y,0,0,$pic_w,$pic_h,imagesx($resource),imagesy($resource));
// 最后两个参数为原始图片宽度和高度,倒数两个参数为copy时的图片宽度和高度
$start_x = $start_x + $pic_w + $space_x;
}

header("Content-type: image/jpeg");
// dump($background);
imagejpeg($background);
}

备注:imagejpeg这个函数还有其他几个同类比如imagepng,第一个参数是要合成的图片,
第二个参数可以填文件名,文件地址,记不清了直接去PHP文档找吧→_→
imagejpeg

tp5+常用命令行

1.创建模块

首先把根目录下的build.php文件copy到你的applicatio n目录下,
然后在application下的build.php中定义好要你需要生成的控制器、模型、视图,举个栗子↓↓↓

1
2
3
4
5
6
7
8
// 定义demo模块的自动生成 (按照实际定义的文件名生成)
'upload' => [
'__file__' => ['common.php'],
'__dir__' => ['controller', 'model', 'view'],
'controller' => ['Index', 'Upload'],
'model' => ['ShowFile', 'UploadFile'],
'view' => ['index/index'],
],

下一步就去控制台执行php think build

2.创建控制器

1
2
3
4
5
if(你想创建一个资源控制器){
php think make:controller test/Blog
}else if(创建一个空的控制器) {
php think make:controller test/Blog --plain
}