以前把php当作一个纯粹的系统编程脚本,从3月份开始第一次使用php写web网站,一点经验在这里总结一下。
一:打开错误显示和错误日志。在php.ini中把dispaly_errors设置为On,或者在脚本开头用ini_set('display_errors', 'On')。
二:
调试工具必备。需要两种调试工具:第一种是调试php脚本的,就像C调试器那样可以在脚本中设置断点,单步执行,运行时查看变量值、修改变量值等,我用的
是xdebug +
vim;第二种是调试HTTP的,当页面打开后一片空白,连个错误信息都没有,或者有些ajax调用的地方出现程序错误,这个时候很需要一个工具来查看实
际的HTTP通信过程,我用的是firefox的插件httpfox。
三:自定义错误处理和异常处理程序。错误处理和异常处理这两个是极
好用的东东,我一般用错误处理来向终端用户报告错误,用异常来记录应用程序运行时错误,比如数据库连接错误等。这两类错误我自己也时常分不清楚,我使用它
们的时候基于这个想法:当程序运行出错时,向用户报告的错误信息一定要友好且隐藏数据库和后台代码细节,这个时候就用trigger_error引发自定
义的错误处理程序来报告错误;同时程序员要能够在事后知道程序为什么会出错,这需要记录错误发生处的调用 ......
查找mysql_pconnect时在mysql帮助文档上发现的,记在这里。
web server使用php生成一个web页面的三式有以下三种:
一:把PHP作为CGI Wrapper。这种方式下,每个到达web server的请求都会导致一个php解析器进程被创建,当这个php页面执行结束时,这个php解析器进程终止。
二:
在多进程的web server中,把php作为web
server的一个模块。这是目前最流行的做法,但是当前也只有apahce用的这种方式。一个多进程的web
server通常有一个总的父进程协调一堆子进程来工作。当页面请求到达web
server时,这个父进程把这个请求交给一个空闲的子进程去完成。同一个client的两次请求不一定被同一个web server的子进程处理。
三:在多线程的web server中,把php作为一个插件。比如IIS使用这种方式。它的工作原理和多进程工作原理一样,不过它是使用线程而非进程。
......
from:http://www.xland.com.cn/article/7/81/0804/28778.htm
本类实现:
数据库信息导出:word,excel,json,xml,sql
数据库恢复:从sql,从文件
具体用法:
首先新建测试用数据库mytest,然后在里面建张表
PHP代码:
以下是代码片段:
--
-- 表的结构 `test`
--
CREATE TABLE `test` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) NOT NULL,
`email` varchar(200) NOT NULL,
`age` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
--
-- 导出表中的数据 `test`
--
INSERT INTO `test` (`id`, `name`, `email`, `age`) VALUES
(1, 'pjq518', [email=]'pjq518@126.com'[/email], 22),
(2, 'xiaoyu', [email=]'xiaoyu@126.com'[/email], 21);
1.导出ext能方便调用的json
PHP代码:
以下是代码片段:
$db=new db();
echo $db->toExtJson('test');
//输出结果为
//{'totalCount':'2','rows':[{'id':'1','name':'pjq518','email':'pjq518@126.com','ag ......
from:http://www.xland.com.cn/article/7/81/0804/28778.htm
本类实现:
数据库信息导出:word,excel,json,xml,sql
数据库恢复:从sql,从文件
具体用法:
首先新建测试用数据库mytest,然后在里面建张表
PHP代码:
以下是代码片段:
--
-- 表的结构 `test`
--
CREATE TABLE `test` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) NOT NULL,
`email` varchar(200) NOT NULL,
`age` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
--
-- 导出表中的数据 `test`
--
INSERT INTO `test` (`id`, `name`, `email`, `age`) VALUES
(1, 'pjq518', [email=]'pjq518@126.com'[/email], 22),
(2, 'xiaoyu', [email=]'xiaoyu@126.com'[/email], 21);
1.导出ext能方便调用的json
PHP代码:
以下是代码片段:
$db=new db();
echo $db->toExtJson('test');
//输出结果为
//{'totalCount':'2','rows':[{'id':'1','name':'pjq518','email':'pjq518@126.com','ag ......
NGINX安装手记
一、环境需要和下载
1. 利用YUM安装必须的程序库
# yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
2. 下载安装环境所需要的源代码程序安装包
#cd /home/soft/nginx_soft/
wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.7.58.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.9.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.9-fpm-0.5.10.diff.gz
wget http://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.1.34.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.13.tar.gz
......
初学PHP的时候,我们经常被PHP的绝对路径和相对路径弄的晕头转向。路径问题经常导致include及require命令不能加载到指定的页
面,从而导致Web程序运行错误。本文将跟大家一起探讨一下PHP路径问题的常用解决方案。
下面我们先做一个个简单的示例:
上图是一个简单Web项目的结构图,其中各文件的代码如下:
root/index.php :
<?php
require_once ‘app/blog.php’;
$blog=new Blog();
echo $blog->GetBlogInfo();
?>
root/app/blog.php :[/B]
<?php
require_once ‘../lib/smarty/functions.php’;
?>
<?php
class Blog
{
public function GetBlogInfo()
{
return ‘This is a test of blog!’;
}
}
?>
<?php
echo ‘root/app/blog.php loaded successed!</br>’;
?>
首先,我们从浏览器里直接输入http://localhost/root/app/blog.php,浏览器显 ......
<?php
//对象
class MyJson{
$id=1;
$siteName='web编程站';
$siteUlr="http://www.baidu.com";
}
$objedt=new MyJson;
echo json_encode($object)."<br />";
//显示的结果为:
{id="1",siteName:"web\u7f16\u7a0b\u7ad9",siteUrl:"http:\/\/www.baidu.com"}
//+++++++++++++++++++++++++++数字索引数组++++++++++++++++++++++++++++++
$arr1=array(1,"web编程站","http://www.baidu.com");
echo json_encode()."<br />";
//显示结果为:
[1,"web\u7f16\u7a0b\u7ad9","http:\/\/www.baidu.com"]
//+++++++++++++++++++++++++关 ......
总记录数:2174; 总页数:363; 每页6 条;
首页 上一页 [1] [2] [3] [4] 5
[6] [7] [8] [9] [10] 下一页 尾页