PHP(一)

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 ?>

posted on 2013-03-05 23:12  紫澜  阅读(323)  评论(0编辑  收藏  举报