[PHP]
;;;;;;;;;;;;;;;;;;;
; About php.ini ;
;;;;;;;;;;;;;;;;;;;
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.
; PHP attempts to find and load this configuration from a number of locations.
; The following is a summary of its search order:
; 1. SAPI module specific location.
; 2. The PHPRC environment variable. (As of PHP 5.2.0)
; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
; 4. Current working directory (except CLI)
; 5. The web server's directory (for SAPI modules), or directory of PHP
; (otherwise in Windows)
; 6. The directory from the --with-config-file-path compile time option, or the
; Windows directory (C:\windows or C:\winnt)
; See the PHP docs for more specific information.
; http://php.net/configuration.file
; The syntax of the file is extremely simple. Whitespace and Lines
; beginning with a semicolon are silently ignored (as you prob ......
互联网的今天,AJAX已经不是什么陌生的词汇了。说起AJAX,可能会立即想起因RSS而兴起的XML。XML的解析,恐怕已经不是什么难题了,特别是PHP5,大量的XML解析器的涌现,如最轻量级的SimpleXML。不过对于AJAX来说,XML的解析更倾向于前台Javascript的支持度。我想所有解析过XML的人,都会因树和节点而头大。不可否认,XML是很不错的数据存储方式,但是其灵活恰恰造成了其解析的困难。当然,这里所指的困难,是相对于本文的主角--JSON而言。
JSON为何物?我就不重复概念了。通俗的说,它是一种数据的存储格式,就像PHP序列化后的字符串一样。它是一种数据描述。比如我们将一个数组序列化后存放,就可以很容易的反序列化后应用。JSON也是如此,只不过他搭建的是客户端Javascript和服务端PHP的交互桥梁。我们用PHP生成JSON后的字符串,然后把这个字符串传给前台Javascript,Javascirpt就可以很容易的将其反JSON然后应用。说通俗点,它真的很像数组。
言归正传,如何使用JSON。PHP5.2开始内置了JSON的支持。当然,如果低于这个版本的话,那么市面上有很多PHP版本的实现,随便下一个用就OK啦。现在主要是说说PHP内置支持的JSON。很简单,两个函数:json_encode和js ......
1、首先通过代码来看看表象:
<?php
session_start();
if (empty($_SESSION['count'])) {
$_SESSION['count'] = 1;
} else {
$_SESSION['count']++;
}
var_dump($_SESSION);
var_dump(htmlspecialchars(SID));
exit;
以上页面打印的结果为:
array(1) {
["count"]=>
int(1)
}
string(36) "PHPSESSID=l8rv16rt3f8kj444se87qmmer5"
查看浏览器的cookie,可以看到有PHPSESSID=l8rv16rt3f8kj444se87qmmer5的键值对。
2、然后查看php的文档,http://cn2.php.net/manual/en/session.idpassing.php:
There are two methods to propagate a session id:
Cookies
URL parameter
默认情况下,使用cookie的方式保存。
3、php中session和cookie的区别
session保存在服务器,一般以文件形式保存;而cookie保存在客户端的临时文件中。
session中保存的是数组,而cookie中保存的是字符串。 ......
php中实现多线程
PHP中实现多线程? 看到这个标题 你一定以为我疯了..但是事实上我真的这么做了.
下面是我的一些做法 已经实验过. 确实可以的.
我们知道PHP本身是不支持多线程的 但是我们的WEB服务器是支持多线程的.
也就是说可以同时让多人一起访问. 这也是我在PHP中实现多线程的基础.
假设我们现在运行的是a.php这个文件. 但是我在程序中又请求WEB服务器运行另一个b.php
那么这两个文件将是同时执行的.
(PS: 一个链接请求发送之后 WEB服务器就会执行它 而不管客户端是否已经退出)
有些时候 我们想运行的不是另一个文件 而是本文件中的一部分代码.该怎么办呢?
其实可是通过参数来控制a.php来运行哪一段程序.
下面看一个例子:
//a.php
<?php
function runThread()
{
$fp = fsockopen('localhost' 80 $errno $errmsg);
fputs($fp "GET /a.php?act=b\r\n\r\n"); //这里的第二个参数是HTTP协议中规定的请求头
&n ......
<?php
/**
* 使用共享内存的PHP循环内存队列实现
* 支持多进程, 支持各种数据类型的存储
* 注: 完成入队或出队操作,尽快使用unset(), 以释放临界区
*
* @author wangbinandi@gmail.com
* @created 2009-12-23
*/
class SHMQueue
{
private $maxQSize = 0; // 队列最大长度
private $front = 0; // 队头指针
private $rear = 0; // 队尾指针
private $blockSize = 256; // 块的大小(byte)
private $memSize = 25600; // 最大共享内存(byte)
private $shmId = 0;
private $filePtr = './shmq.ptr';
private $semId = 0;
public function __construct()
{
$shmkey = ftok(__FILE__, 't');
$this->shmId = shmop_open($shmkey, "c", 0644, $this->memSize );
$this->maxQSize = $this->memSize / $this->blockSize;
// 申請一个信号量
$this->semId = sem_get($shmkey, 1);
sem_acquire($this->semId); // 申请进入临界区
$this->init();
}
private function init()
{
if ( file_exists($this->filePtr) ){
$content ......
<?php
/**
* 使用共享内存的PHP循环内存队列实现
* 支持多进程, 支持各种数据类型的存储
* 注: 完成入队或出队操作,尽快使用unset(), 以释放临界区
*
* @author wangbinandi@gmail.com
* @created 2009-12-23
*/
class SHMQueue
{
private $maxQSize = 0; // 队列最大长度
private $front = 0; // 队头指针
private $rear = 0; // 队尾指针
private $blockSize = 256; // 块的大小(byte)
private $memSize = 25600; // 最大共享内存(byte)
private $shmId = 0;
private $filePtr = './shmq.ptr';
private $semId = 0;
public function __construct()
{
$shmkey = ftok(__FILE__, 't');
$this->shmId = shmop_open($shmkey, "c", 0644, $this->memSize );
$this->maxQSize = $this->memSize / $this->blockSize;
// 申請一个信号量
$this->semId = sem_get($shmkey, 1);
sem_acquire($this->semId); // 申请进入临界区
$this->init();
}
private function init()
{
if ( file_exists($this->filePtr) ){
$content ......
以前一直搞C++进行C/S开发,曾经的想法是如果有机会,学学搞网站和嵌入式开发
没想到找到工作的第2天就有了做网站的机会,也赚到了自己大学期间最高的一份工资,10天1000块
在什么的都不会的情况下,尽然答应人事处的老师一个星期写好网站的后台
我承认找到工作后自己是有点狂了,很多事没注意到,很多事后悔不了。。。
接下来的一个星期都看了2天的php、htm,用了之前专业美工写好的css代码和自己找的一些js代码,把网站的前台写好了,两三天后弄好后台,仅把中间遇到的部分问题贴出来,供像我这样的初学者应急,更多的需要自己去探索
1.中文字符集
网站发布上去就出现了问题,因为之前一直在windows下测试,结果转到linux的服务器上,代码就跑飞了,不得已将所有上传的消息文件换名为编号加上一串随机字母数字混合
2.不严格的类型定义
php属于弱类型定义,有个搞了几十分钟的错误就是因为粗心写错了一个变量的字母(被认为是一个新的变量了,在php中)
3.强大的echo类似sprintf
4.页面之间的数据传送
get和post方式,注意对于字符串传送最好使用urlencode加密再decode解密
5.mysql操作
跟mssql还是比较相似的,具体区别不太记得了,反正用到不会的都是google解 ......
以前一直搞C++进行C/S开发,曾经的想法是如果有机会,学学搞网站和嵌入式开发
没想到找到工作的第2天就有了做网站的机会,也赚到了自己大学期间最高的一份工资,10天1000块
在什么的都不会的情况下,尽然答应人事处的老师一个星期写好网站的后台
我承认找到工作后自己是有点狂了,很多事没注意到,很多事后悔不了。。。
接下来的一个星期都看了2天的php、htm,用了之前专业美工写好的css代码和自己找的一些js代码,把网站的前台写好了,两三天后弄好后台,仅把中间遇到的部分问题贴出来,供像我这样的初学者应急,更多的需要自己去探索
1.中文字符集
网站发布上去就出现了问题,因为之前一直在windows下测试,结果转到linux的服务器上,代码就跑飞了,不得已将所有上传的消息文件换名为编号加上一串随机字母数字混合
2.不严格的类型定义
php属于弱类型定义,有个搞了几十分钟的错误就是因为粗心写错了一个变量的字母(被认为是一个新的变量了,在php中)
3.强大的echo类似sprintf
4.页面之间的数据传送
get和post方式,注意对于字符串传送最好使用urlencode加密再decode解密
5.mysql操作
跟mssql还是比较相似的,具体区别不太记得了,反正用到不会的都是google解 ......