1.PHP手册
http://www.php.net/manual/zh/index.php
2.fopen的mode参数说明
"r" 读
"w" 写
"a" 文件尾写
"x" 文件头写
3.PHP写的一个socket服务器(需要在客户端触发一次)
1 <?php
2 // 服务器端php程序
3 // 不断监听,每收到客户端消息,向所有客户端发送该消息
4 // 没有收到客户端消息,向所有客户端发送固定消息
5
6 // 与客户端断开仍继续执行
7 ignore_user_abort(true);
8 // 执行时间无限制
9 set_time_limit(0);
10 // 时间间隔为1s
11 $interval = 1;
12 // 服务端端ip地址
13 $address = "127.0.0.1";
14 // 服务器端端口
15 $port = 8030;
16 // 创建监听socket
17 if(($listenSocket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) == false) {
18 die("错误:socket_create");
19 }
20 // 绑定ip地址和端口
21 if(socket_bind($listenSocket, $address, $port) == false) {
22 die("错误:socket_bind");
23 }
24 // 开始监听
25 if(socket_listen($listenSocket) == false) {
26 die("错误:socket_listen");
27 }
28 // 初始客户端socket数为0
29 $clientSocketsNum = 0;
30 // 设置监听socket无阻塞
31 socket_set_nonblock($listenSocket);
32 // 无限循环
33 do{
34 // 接受一个socket请求,创建一个客户端socket
35 if(($clientSocket = socket_accept($listenSocket)) != false) {
36 // 将该socket加入客户端socket
37 $clientSockets[$clientSocketsNum] = $clientSocket;
38 $clientSocketsNum ++;
39 }
40 // 遍历所有客户端socket
41 for($i = 0; $i < $clientSocketsNum; $i ++) {
42 // 获得一各客户端socket
43 $clientSocket = $clientSockets[$i];
44 // 设置客户端socket无阻塞
45 socket_set_nonblock($clientSocket);
46 // 从客户端获取数据
47 if(($buf = socket_read($clientSocket, 1024)) != false) {
48 // 向客户端发送数据
49 socket_write($clientSocket, $buf);
50 // 将数据记录在文件
51 $fp = fopen("test.txt", "a");
52 fwrite($fp, $buf . " " . $clientSocketsNum . "\n");
53 fclose($fp);
54 }
55 }
56 // 暂停一段时间
57 sleep($interval);
58 }while(true);
59 // socket_write($msgSocket,$command1,strlen($command1));
60 ?>
4.PHP脱离客户端工作
PHP脱离客户端工作得还比较稳定,测试了1小时,一直没断
5.连接本地MYSQL
$con = mysql_connect("localhost");
6.连接本地MYSQL,并且使用TEST库,再退出
1 <?php
2 // 连接本地数据库
3 $con = mysql_connect("localhost");
4 // 出错
5 if(!$con) {
6 die('{"error":"1"}');
7 }
8 // 选择库
9 $db_selected = mysql_select_db("test");
10 if(!$db_selected) {
11 die('{"error":"1"}');
12 }
13 // ...
14 mysql_close($con);
15 ?>
7.单引号与双引号的区别
一般情况下两者是通用的,但双引号内部变量会解析,单引号则不解析
8.JSON编码
string json_encode ( mixed $value [, int $options = 0 ] )
9.遍历数组
1 <?php
2 // 定义数组
3 $Test["A"] = "A";
4 $Test["B"] = "B";
5
6 // 重置遍历起点
7 reset($Test);
8
9 // 遍历Test数组
10 while(list($key, $val) = each($Test)) {
11 print "$key => $val<br/>";
12 }
13 ?>
10.把数组转化为JSON格式的字符串
1 <?php
2 function array2json($array2json_array) {
3 $array2json_string = "{";
4 reset($array2json_array);
5 $array2json_count = 0;
6 while(list($key, $val) = each($array2json_array)) {
7 if(!$array2json_count) {
8 $array2json_count = 1;
9 $array2json_string = $array2json_string . "\"$key\":\"$val\"";
10 }
11 else {
12 $array2json_string = $array2json_string . ",\"$key\":\"$val\"";
13 }
14 }
15 $array2json_string = $array2json_string . "}";
16 return $array2json_string;
17 }
18
19 // 定义数组
20 $Test["A"] = "A";
21 $Test["B"] = "B";
22 $Test["C"] = "C";
23
24 print array2json($Test);
25 ?>