Google launched their Google App Engine (GAE) a year ago. The free hosting in App Engine is allocated 500 MB of persistent storage and enough CPU and bandwidth for about 5 million page views a month. Also, if you really want more you can see pricing plans.
GAE will support Java going forward. Unfortunately PHP support on the App Engine is still left as the top item in the wishlist. So until Google announces their official PHP support we have a workaround to run PHP using Quercus. Quercus is basically a 100% Java implementation of the PHP language (requires JDK 1.5). Since the App Engine now supports Java this means we can use Quercus to run PHP scripts on the App Engine.
So all you need to use the GAE and run PHP
1) Register a free account.
2) Download this file to your computer.
3) Edit application XML tag in the file war\WEB-INF\appengine-web.xml to the name of the application you have registered.
4) Finally upload your application. I downloaded&n ......
PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式(2008-12-4)
所以存到数据库也有两种形式了(真正不止,我的应用就两种),时间戳类型我是保存为字符串的,这个是比较方便的.
正常日期类型是保存为DATE型的.
这两个要注意一下,我平时用两种,所以,前几天建的表,把时间类型存为DATE的,我还一直用时间戳保存,一直资料写不进表,调试了好久的才知错误之处,是类型不符合,不给写入库.
像上面的时间戳是比较方便,但,显示的时候,不至于把这个1228348800串给客户看吧,GOD NOWS!
所 以就用到了这两个的转换,先说一下如何取得当前的时间戳,$date1=time();这样就取得当前的时间戳了,要转回2008-12-4这种格式呢, 用到date()这个函数了,在PHP中date()函数比较常用,如取得当前日期,可以用$date2=date('Y-m-d');,关于里面参数的 意思,如不懂就查一下php的手册了.
好,言归正传,把1228348800转成2008-12-4格式代码如下:
$date3=date('Y-m-d H:i:s',"1228348800");
这样就OK了,如还想得到小时,分钟秒,只要把'Y-m-d'改一下就可以了,不过要注意一下,PHP时间还像有8个小时的误差.加上就OK了.
时间戳转正常日期有了,反之呢,把正常日期格式转为时间戳呢,请看如下代码:
$year ......
Linux安装Mysql+Apach+PHP+phpMyAdmin
我的系统是redhat as5 建议大家完全安装,以免安装时缺少相关的编译器等等。
一、安装mysql(mysql-5.0.21.tar.gz)
# tar zxf mysql-5.0.21.tar.gz
# cd mysql-5.0.21
#./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql/
说明:
#prefix=/usr/local/mysql mysql安装的目标目录
#sysconfdir=/etc my.ini配置文件的路径
#localstatedir=/var/lib/mysql 数据库存放的路径
# make
# make install
# groupadd mysql
# useradd mysql -g mysql
# cp support-files/my-medium.cnf /etc/my.cnf
#(这个文件夹是原来编译的目录下的)询问你是否要覆盖时,输入"y"
#/usr/local/mysql/bin/mysql_install_db --user=mysql
# cd /usr/local/mysql 然后设置权限
# chown -R root . #设定root能访问/usr/local/mysql
# chown -R mysql /var/lib/mysql &nbs ......
Linux安装Mysql+Apach+PHP+phpMyAdmin
我的系统是redhat as5 建议大家完全安装,以免安装时缺少相关的编译器等等。
一、安装mysql(mysql-5.0.21.tar.gz)
# tar zxf mysql-5.0.21.tar.gz
# cd mysql-5.0.21
#./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql/
说明:
#prefix=/usr/local/mysql mysql安装的目标目录
#sysconfdir=/etc my.ini配置文件的路径
#localstatedir=/var/lib/mysql 数据库存放的路径
# make
# make install
# groupadd mysql
# useradd mysql -g mysql
# cp support-files/my-medium.cnf /etc/my.cnf
#(这个文件夹是原来编译的目录下的)询问你是否要覆盖时,输入"y"
#/usr/local/mysql/bin/mysql_install_db --user=mysql
# cd /usr/local/mysql 然后设置权限
# chown -R root . #设定root能访问/usr/local/mysql
# chown -R mysql /var/lib/mysql &nbs ......
Linux安装Mysql+Apach+PHP+phpMyAdmin
我的系统是redhat as5 建议大家完全安装,以免安装时缺少相关的编译器等等。
一、安装mysql(mysql-5.0.21.tar.gz)
# tar zxf mysql-5.0.21.tar.gz
# cd mysql-5.0.21
#./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql/
说明:
#prefix=/usr/local/mysql mysql安装的目标目录
#sysconfdir=/etc my.ini配置文件的路径
#localstatedir=/var/lib/mysql 数据库存放的路径
# make
# make install
# groupadd mysql
# useradd mysql -g mysql
# cp support-files/my-medium.cnf /etc/my.cnf
#(这个文件夹是原来编译的目录下的)询问你是否要覆盖时,输入"y"
#/usr/local/mysql/bin/mysql_install_db --user=mysql
# cd /usr/local/mysql 然后设置权限
# chown -R root . #设定root能访问/usr/local/mysql
# chown -R mysql /var/lib/mysql &nbs ......
/**********************************
APACHE
***********************************/
编辑参数:
./configure" \
"--prefix=/usr/local/apache" \
"--enable-so" \
"--enable-ssl" \
"--enable-mods-shared=most" \
"--with-mpm=event" \
"--with-ssl=/usr/local/openssl" \
"--enable-cache" \
"--enable-mem-cache" \
"--enable-disk-cache" \
"--enable-file-cache" \
"--with-included-apr" \
"--enable-nonportable-atomics-yes" \
使apache 支持shtml:
----------------------------start
编辑: httpd.conf
去掉下面两行的注释
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
添加Includes
Options -Indexes FollowSymLinks Includes
允许目录浏览:
Options Indexes FollowSymLinks Includes
------------------------------end--
/*************************************
MYSQL
******************************************/
现在MYSQL下载下来基本都是二进制,也可以下源码安 ......
/**********************************
APACHE
***********************************/
编辑参数:
./configure" \
"--prefix=/usr/local/apache" \
"--enable-so" \
"--enable-ssl" \
"--enable-mods-shared=most" \
"--with-mpm=event" \
"--with-ssl=/usr/local/openssl" \
"--enable-cache" \
"--enable-mem-cache" \
"--enable-disk-cache" \
"--enable-file-cache" \
"--with-included-apr" \
"--enable-nonportable-atomics-yes" \
使apache 支持shtml:
----------------------------start
编辑: httpd.conf
去掉下面两行的注释
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
添加Includes
Options -Indexes FollowSymLinks Includes
允许目录浏览:
Options Indexes FollowSymLinks Includes
------------------------------end--
/*************************************
MYSQL
******************************************/
现在MYSQL下载下来基本都是二进制,也可以下源码安 ......
/**********************************
APACHE
***********************************/
编辑参数:
./configure" \
"--prefix=/usr/local/apache" \
"--enable-so" \
"--enable-ssl" \
"--enable-mods-shared=most" \
"--with-mpm=event" \
"--with-ssl=/usr/local/openssl" \
"--enable-cache" \
"--enable-mem-cache" \
"--enable-disk-cache" \
"--enable-file-cache" \
"--with-included-apr" \
"--enable-nonportable-atomics-yes" \
使apache 支持shtml:
----------------------------start
编辑: httpd.conf
去掉下面两行的注释
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
添加Includes
Options -Indexes FollowSymLinks Includes
允许目录浏览:
Options Indexes FollowSymLinks Includes
------------------------------end--
/*************************************
MYSQL
******************************************/
现在MYSQL下载下来基本都是二进制,也可以下源码安 ......
执行以下语句:
var_dump(2147483647); // int
var_dump(
2147483648); // float
可以看到,php int型的最大值就是
2147483647,即231
-1,因为32位的最高位要用来表示正负。
再执行以下语句:
$u = sprintf("%u",
2147483648); # 更换为%b,%d试试
var_dump($u);
......
PHP源代码简单分析
1. 目录结构
1. build 和编译有关的目录。
2. ext 扩展库代码,例如 Mysql、zlib、iconv 等我们熟悉的扩展库。
3. main 主目录。
4. sapi 和各种服务器的接口调用,例如apache、IIS等,也包含一般的fastcgi、cgi等。
5. win32 和 Windows 下编译 PHP 有关的脚本。用了 WSH。
6. Zend 文件夹核心的引擎。
2. PHP使用Lex和Yacc对语法进行解析。
在 Zend 目录下有两个文件 zend_language_parser.y 与 zend_language_scanner.l 他们是Lex和Yacc的脚本文件,通过这两个脚本文件生成对应的.c和.h文件,实际上这在 linux 下非常普遍,gcc 也使用它们产生语树。
3. PHP如何使用Mysql?
ext 目录下有一个 mysql 子目录,这个目录中的php_mysql.c 和 php_mysql.h 负责 PHP 与 Mysql 操作。使用了 Mysql 手册中的 C 语言 API。
4. 安全模式?
main 文件夹下的safe_mode.h 和 safe_mode.c 文件负责PHP的安全模式。
5. 那些是 PHP 的标准函数,那些是扩展函数?
ext 目录下英文意思是扩展,而在 ext 下还是有 ......