Posts Tagged ‘PHP’

amfphp之php

December 17th, 2008

http://www.amfphp.org/
1.php接口文件名必须和类名相同
例如:paint.php中的类必须用class paint{…}

2.php接口文件放置在amfphp/services/下即可通过Flex调用
PS:可以在amfphp/browser/index.html调试接口
PPS:可以在globals.php更改$servicesPath

3.如果接口返回中文字符的话,需要在amfphp/gateway.php的line127 设置对应的字符串编码
例如:$gateway->setCharsetHandler(”utf8_decode”, “UTF-8″, “UTF-8″);

4.php接口中全局变量的问题(连续2次问题都因此)
amfphp在调用php接口时是把这个接口文件include到amfphp本身的类里,所以include的时候就会出现在函数里global声明的变量获取不到,需要改成在声明该全局变量时就声明该变量global

详见http://cn2.php.net/manual/en/language.variables.scope.php#63500

5.如果加载大数据失败的话,可以调整amfphp/gateway.php的line151,把20调的更大些
比如$gateway->enableGzipCompression(200*1024);

6.gateway类的service方法会输出自己的header,如果对应的services也输出header信息的话可能会在ie7下报错。(bug#1076)

  • Share/Save/Bookmark

用serialize后的值做mc的key时要注意数组值的类型

December 11th, 2008

$filter_i = array(’itemid’=>1);

$filter_s = array(’itemid’=>’1′);
这两个serialize后的值肯定不一样恩,一个是s,一个是i

所以$key = ‘get_attach_’ . md5(serialize($filter));的话会有可能出现虽然查询的是同一数据,但实际上做了2次缓存
对应的清理缓存时也有可能清理的对象是另外一个

所以大家都$filter['itemid'] = intval($filter['itemid'])一下好了

  • Share/Save/Bookmark

PHP也可以开发IM

October 18th, 2008

偶然发现JeCat-Jabber,用PHP开发的IM,开源的,赞!
目前版本还只是0.1.1,14号刚发布的,严重关注!
刚试了一下,目前支持的功能也很有限,当然,最主要的聊天功能是实现了,这就很好了,其他扩展可以慢慢来
咱也可以研究研究,哈哈,虽然不可与QQ,MSN,GTALK等同日而语,不过看到能用PHP开发IM真的很开心
谁说PHP只能做WEB的哈哈哈哈

上地址:http://jj.jecat.cn/

上介绍:

JeCat-Jabber PHP开源即时通讯软件V0.1.1


下载
http://down.chinaz.com/soft/24024.htm

JeCat-Jabber(简称:JJ)  是一款完全由 PHP 开发的即时通讯软件。JJ 采用 Gtk2 图像界面库来实现用户界面。顾名思义 JJ 使用 Jabber 协议(XMPP) ,因此可以 和 包括  GTalk 在内的 其它任何 XMPP 即时通讯软件 聊天。

JJ 项目的初衷在于 演示 桌面窗口 和 PHP 多任务处理,这两大 在长期在 PHP程序员 眼中 几乎是“不可能”的任务。 同时 也是 PHP框架 JCAT 的演示项目,JCAT 是一款同时 支持 Web 和 桌面 的 PHP框架,按照计划 将在稍后 发布。

JJ 的特点

> 跨平台。JJ 在Linxu 环境下 开发,在 Windows 平台上也一样可以正常使用。
> 实用 标准的 XMPP协议,能够与其它的 Jabber 软件互相通讯,例如 Google GTalk、Pidgin、PSI、Spark、Pandion,以及其它的 Jabber网页聊天窗口
> 可更换界面皮肤,皮肤样式文件 采用 类似 CSS 的语法,便于美工独立工作。
> 纯 PHP 实现,从 通讯协议 到 图形界面,全部都由 PHP 开发,如果你正好是一名 PHP 程序员,你可以驾轻就熟地在 JJ 之上进行二次开发。
> 可整合到你的网站中。JJ 近期的完善 会使 JJ 更容易地 为你的网站所有,让你的网站 也可以有像 淘宝旺旺 那样的 专用聊天工具

[ PHP 图像界面 ]
JJ 采用 Gtk图像界面库,Gtk库 中 提供了丰富的 图形界面窗体(Widget),以及灵活方便的 窗体布局方式。 Gtk 本身 被广泛应用在 Linux 平台上,Linux 最著名 的桌面环境之一 Gnome 即是众多 Gtk软件 的集中展示。 PHP-Gtk2 将 Gtk 窗体绑定到 PHP 语言中,允许程序员 通过 PHP语言 来创建、显示、销毁 Gtk 窗体。PHP-Gtk 项目由 PHP创始人 亲自负责,并且自项目创立一来 一直持续发展,目前已经支持 最新的 Gtk2。

[ PHP 多任务处理 ]
PHP 直到 5.2都没有提供 稳定可靠的 多线程特性。 但 PHP 仍然有能力进行多任务处理。
多线程 因为涉及到 线程安全、线程同步 等 困难,在 支持线程的语言中,也常常建议尽量避免使用。
Linux 的多路复用 是 更稳定和安全的 多任务模式,从 PHP5.0 开始 多路复用 支持 Windows 平台。

  • Share/Save/Bookmark

Dips4:关于整型integer遇到的进制和溢出的问题

October 12th, 2008
$v = 04555720201;
echo $v;

恩。。。。输出结果是632791169

起初以为是溢出的,最后发现是因为以0开头的整型会被认为八进制。

查了点资料做备份。
1.Syntax:
Integers can be specified in decimal (base 10), hexadecimal (base 16), or octal (base 8) notation, optionally preceded by a sign (- or +).

To use octal notation, precede the number with a 0 (zero). To use hexadecimal notation precede the number with 0x.

decimal : [1-9][0-9]*
| 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal : 0[0-7]+

integer : [+-]?decimal
| [+-]?hexadecimal
| [+-]?octal

2.溢出overflow

If PHP encounters a number beyond the bounds of the integer type, it will be interpreted as a float instead. Also, an operation which results in a number beyond the bounds of the integer type will return a float instead.

32位系统是2^32-1(?)

注:Mysql里的有符号整型是-2147483648 到2147483647(与PHP相同),无符号的是0 到4294967295

2010.01.08更新3. cookie不能设置为100年哇,虽然想做永久不过期,但是不必须设100年哇,100年会导致PHP溢出的。。。。

  • Share/Save/Bookmark

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 775920 bytes)

September 17th, 2008

解决办法(三种):
一、修改php.ini(推荐)
memory_limit = 12M
二、在程序里面添加如下语句
ini_set('memory_limit', '12M');
三、在根目录建立
.htaccess文件,添加如下内容
php_value memory_limit 12M
如果还不能解决,就把它改得再大一些。
最后注意的是重启服务器。

  • Share/Save/Bookmark