nginx url重写和pathinfo配置

nginx近年来的上涨趋势确实挺快的,但是apache作为老牌HTTP服务器,拥有的生态圈是nginx比不上的。一个最简单的例子,URL重写,apache的话利用无所不能的.htaccess文件就可以了。nginx还要改主配置文件。

URL重写配置

主配置文件

1
2
3
4
5
6
location /
{
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?$1 last;
}
}

if和(中间要有括号,url重写这里就配置完了。

php OOP中的__get和__set方法

get,set光看前面两个下划线就知道是魔术方法了,而且还是PHP OOP中比较重要的方法。

先看一段代码

1
2
3
4
5
6
7
8
9
10
<?php
class Account{
private $user = 1;
private $pwd = 2;
}
$a = new Account();
echo $a->user;
$a->name = 5;
echo $a->name;
echo $a->big;

PHP将日期转换为星座

PHP heredoc 字符串定界符使用

PHP定义字符串有三种形式

  • 双引号

php使用CORS实现跨域请求

js跨域的解决方法,一百度一大堆,不过都是jsonp为主,这种解决方法只适用于GET请求。POST跨域的话需要在HTTP协议上下功夫。

基础知识

主要会用到以下几个响应头

阿里云ECS服务器phpmailer发信失败解决方法

phpmailer之前一直在用,一般都是采用smtp登录服务器的方式进行发信,今天在本地windows主机测试也能发信成功,但是到线上去就不行了,提示“连接smtp服务器失败”。
首先可以排除的是代码方面的错误,那么剩下就知道服务器的问题了。

根据这个错误,可以想到有几种问题:

nginx虚拟主机配置

最近服务器上用的环境是lnmp,之前一直在用apache,配置虚拟主机也是很方便的。今天查资料发现Nginx的虚拟主机配置更加简单。

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
server {

listen 80;

server_name domain1;

location / {

root html/domain1;

index index.html index.htm index.php;

}

location ~ \.php$ {

root html/domain1;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

server {

listen 80;

server_name domain2;

location / {

root html/domain2;

index index.html index.htm index.php;

}

location ~ \.php$ {

root html/domain2;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

保存之后,执行

Yii同一站点配置多个用户角色

Yii是基于组件的PHP MVC框架,yii的用户组件调用很方便,但是如果有遇到一个站点有多种用户的时候,如前台用户,后台用户,就需要增加User组件了。

简单来说,就是新建一个用户类去继承 CWebUser类,比如

WebUser继承CWebUser,配置文件在components中增加

PDO简明教程,是时候抛弃mysql_*函数了

mysql_*系列函数我一之前一直在用,基于性能、安全性等原因,再加上PHP面向对象的增强,是时候使用PDO来处理数据了。PDO一个很重要的特点是该类与数据库无关,不同的数据库只是在实例化时传入的参数不同,但是操作方法是一样的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=test','root','root');
//查询数据
$stmt = $pdo->prepare('SELECT * FROM user WHERE sex=?');
$sex = 'male';
$stmt->bindParam(1,$sex);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$list = $stmt->fetchAll();
//查询完毕
//写入数据
$stmt = $pdo->prepare('INSERT INTO user VALUES (?,?,?)');
$username = 'admin';
$password = md5('111111');
$sex = 'male';
$stmt->bindParam(1,$username);
$stmt->bindParam(2,$password);
$stmt->bindParam(3,$sex);
$stmt->execute();
//写入完毕
} catch (Exception $e) {
echo $e->getMessage();
}

编辑、更新、删除统称为写入操作,大家可以举一反三~

php中文字符串反转

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×