Archive for the ‘PHP编程’ Category

CodeIgniter php mvc框架 中国网站

星期一, 06月 2nd, 2008

我很高兴de宣布 CodeIgniter 1.6.2 版正式发布.本次发布包括超过 29 个 BUG 修复和 34 个功能补充和增强.这些内容包括:改善“Active Record”与事务性数据库de交互;引入一个常量文件;改善 Zip 类库;一个兼容性辅助函数;为文件辅助函数增加新de功能;从框架文件中删除 PHP de关闭标记;还有许多其他de内容.更多细节请查看更改记录!
欢迎使用 CodeIgniter
CodeIgniter 是一套给 PHP 网站开发者使用de应用程序开发框架和工具包.它提供一套丰富de标准库以及简单de接口和逻辑结构,其目de是使开发人员更快速地进行项目开发.使用 CodeIgniter 可以减少相关代码de编写量,并将您de精力投入到项目de创造性开发上.
请阅读下面用户指南de介绍部分,它能让您对 CodeIgniter 有一个大概de了解.接下来就可以从开始页展开 CodeIgniter 之旅了!
CodeIgniter 是为谁准备de?
CodeIgniter 就是您所需要de,如果…
您想要一个小巧de框架.
您需要出色de性能.
您需要广泛兼容标准主机上de各种 PHP 版本和配置(例如 PHP4).
您想要一个几乎只需 0 配置de框架.
您想要一个不需使用命令行de框架.
您想要一个不需坚守限制性编码规则de框架.
您对 PEAR 这种大规模集成类库不感兴趣.
您不希望被迫学习一门模板语言(虽然可以选择您要求de模板解析器).
您不喜欢复杂,热爱简单.
您需要清晰、完整de文档.
官方地址

五个PHP程序员工具

星期一, 06月 2nd, 2008

Phing - 一个项目构建系统
Phing 是一个基于Apache ANT de项目构建系统.它de名字是一个拗口de语句首字母缩写 - PHing Is Not GNU make .Phing可以做传统构建系统比如 GNU make 能做de任何事情,同时没有陡峭de学习曲线.
在phing(以及其他de构建系统)背后de思想是评估一系列相关性,然后执行一系列PHP类去正确de安装和配置一个应用系统.构建过程用一个简单deXML配置文件控制.Out of the box, phing内置可以执行一系列替换(比如:在您de开发版本和产品版本间改变include路径)、执行SQL语句、移动和复制文件、运行外部脚本等等.通过扩展包含在发行包中de“task”类,您也可以创造自己de定制任务.
对任何需要在超过一台服务器上部署大型PHP应用de人来世,Phing是一个无价之宝.同时我发现它对简单dePHP脚本也是很有用de.
Xdebug - 调试和分析工具
Xdebug 是帮助您调试和分析脚本de一个PHP扩展.Xdebug中最有用de特性是在激活后显示de新注意信息、警告信息和错误信息.如果一个脚本不能正常运行,Xdebug将会输出关于错误信息de完整堆跟踪 ,会附带函数名称、参数值、源文件和行号.这对于厌倦了PHP默认只带de可怜de错误报告功能de程序员是一个值得欢迎de特性.
这个扩展有很多更先进de功能,允许开发人员进行相关代码覆盖率分析,收集分析信息以及交互式地调试脚本.profiling functionality 功能尤其有用.分析器使用一个普通de输出文件格式,允许您使用象 KCacheGrind 这样de工具快速发现您相关代码中de瓶颈.对任何严肃de开发人员而言,一个好de分析器是基本工具,它使得您妥善优化您de相关代码,同时避免过早优化带来de危害.
PHPUnit - 单元测试框架
PHPUnit 是一个轻量级dePHP测试框架.它是在PHP5下面de JUnit 3.8.1 完整移植,是xUnit 测试框架家族de一员(它们基于软件模式 先锋 Kent Beck de设计).
单元测试是几个现代敏捷开发方法de基础,使得PHPUnit成为许多大型PHP项目de关键工具.这个工具也可以被前面讨论deXdebug扩展用来生成相关代码覆盖率报告 ,并且可以与phing集成来自动测试.
Propel - ORM(对象关系映射)框架
Propel是一个PHP5下面de对象关系映射(ORM)框架,它起源于Apache Torque项目.它提供了一个复杂但是易用de数据库抽象层,使得您可以在PHP中象使用普通类和对象一样得使用数据库实体.Propel允许您使用一种简单deXML格式定义您de数据库,这个XML文件被用来映射数据库,生成应用中使用de静态类.
Propel被内嵌于流行deSymfony PHP框架 (还有其他de),它使得相关代码更灵活、模块化以及可移植.这个项目有The project has 出色de文档,以及很棒de支持社区.
phpMyAdmin / phpPgAdmin - 基于webde数据库管理系统
历史有点长可是还是很有用,phpMyAdmin是对于任何数据库(对应PostgreSQL和SQLite是phpPgAdmin 和 phpSQLiteAdmin)最有用de管理工具之一.它有助于做每一件事情 - 从为了调试应用去创建和删除数据库到做备份.安装它通常是我在一个LAMP服务器上面安装完 Apache, PHP和MySQL后做de第一件事情.如果您使用MySQL,不知何故还没听说过它,那么现在就安装 .
其他工具
还有很多优秀de工具用以符合各种需要,帮助PHP开发者创建一个丰富de开发环境 — 我希望我可以说到所有这些工具.我发现对自己有用de工具有PHP Beautifier, Spyc, Creole和Smarty.我确信还有很多我忘记或者没听说过de有用工具.因此,如果您知道某个我遗漏dePHP开发伟大工具,请留言让我(以及所有人)知道!

需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析

星期一, 06月 2nd, 2008

Smarty
Smartyde特点是将模板编译成PHP脚本,然后执行这些脚本.很快,非常灵活.
Heyes Template Class
一个非常容易使用,但功能强大并且快速de模板引擎,它帮助您把页面布局和设计从相关代码中分离.
FastTemplate
一个简单de变量插值模板类,它分析您de模板,把变量de值从HTML相关代码中分离处理.
ShellPage
一个简单易用de类,可以让您de整个网站布局基于模板文件,修改模板就能改变整个站点.
STP Simple Template Parser
一个简单、轻量级并且易于使用de模板分析类.它可以从多个模板中组装一个页面,把结果页面输出到浏览器或者文件系统.
OO Template Class
一个您可以用在自己程序中de面向兑现de模板类.
SimpleTemplate
一个可以创建和结构化网站de模板引擎.它可以解析和编译模板.
bTemplate
短小但是快速de模板类,允许您把PHP逻辑相关代码从HTML修饰相关代码中分离.
Savant
一个强大且轻量级dePEAR兼容模板系统.它是非编译型de,使用PHP语言本身做为它de模板语言.
ETS - easy template system
可以使用完全相同数据重组模板de模板系统.
EasyTemplatePHP
适用于您de站点de一个简单但是强大de模板系统.
vlibTemplate
一个快速、全能de模板系统,它包含一个缓存和调试类.
AvanTemplate
多字节安全de模板引擎,占用很少系统资源.它支持变量替换,内容块可以设置显示或隐藏.
Grafx Software’s Fast Template
一个修改版本deFast Template系统,它包括缓存功能,调试控制台以及沉默去除为赋值块.
TemplatePower
一个快速、简单、功能强大de模板类.主要功能有嵌套de动态块支持,块/文件包含支持以及显示/隐藏未赋值de变量.
TagTemplate
这个库de功能被设计来使用模板文件,同时允许您从HTML文件检索信息.
htmltmpl: templating engine
一个适用于Python和PHPde模板引擎.它面向希望在项目中分离相关代码和设计deweb应用开发人员.
PHP Class for Parsing Dreamweaver templates
一个分析Dreamweaver模板de简单类,被用于Gallery 2 和WordPressde自定义模块中.
MiniTemplator (Template Engine)
针对HTML文件de一个紧凑型模板引擎.对于模板变量和块定义它具有简单de语法.其中块可以嵌套.
Layout Solution
简化网站开发和维护.它拥有常用de变量和页面元素使您不需要重复做页面布局工作.
Cached Fast Template
它已经纳入 FastTemplate ,允许您缓存模板文件,甚至可以在分离de块内容上缓存不同de规格.
TinyButStrong
一个支持MySQL, Odbc, Sql-Server和ADODBde模板引擎.它包含7个方法和两个属性.
Brian Lozier’s php based template engine
只有2K大小,非常快并且是面向对象设计.
WACT
一个从设计中分离相关代码de模板引擎.
PHPTAL
一个PHP下面deXML/XHTML模板库.

JS实现php的伪分页

星期一, 06月 2nd, 2008

JS相关代码如下:
[复制此相关代码]CODE:
<scrīpt language=”javascrīpt”>
//最大数据量
var total=”100″;
//每页de显示量
var pagesize=10;
//一共有多少页
var pagenum=Math.ceil(total/pagesize);
//生成导航
function initpage(nowpage){
var pagenav=’<a href=”#” ōnclick=up(’ nowpage ‘);>上一页</a>’;
for(i=1;i<=pagenum;i ){
pagenav = (i==nowpage)?’<span class=”now”>’ i ‘</span>’:'<a class=”number” href=”#” ōnclick=goToPage(’ i ‘);>’ i ‘</a> ‘;
}
pagenav = ‘<a href=”#” ōnclick=down(’ nowpage ‘);>下一页</a>’;
document.getElementById(’pages’).innerHTML=pagenav;
}
//翻页
function goToPage(page){
var start=(page-1)*pagesize;
var max=page*pagesize;
for(vs=0;vs<total;vs ){
var ōbj=document.getElementById(’item_’ vs);
obj.style.display=”none”;
}
if(max>total)max=total;
for(v=start;v<max;v ){
var ōbj=document.getElementById(’item_’ v);
obj.style.display=”block”;
}
initpage(page);
}
//上一页
function up(nowpage){
if(nowpage==1)return false;
if(nowpage>1)goToPage((nowpage-1));
}
//下一页
function down(nowpage){
if(nowpage==pagenum)return false;
if(nowpage<pagenum)goToPage((nowpage 1));
}
</scrīpt>


如果数据是
<li id=”item_0″ >………</li>
<li id=”item_1″ >………</li>
………..
<li id=”item_100″ >……..</li>
那么就可以显示出一个类似于这样de导航:
上一页 1 2 3 4 下一页
然后点击页数或者上下页就可以切换显示了.

时间比较仓促,就说这么多了,大家自己分析相关代码,有不明白de请留言

谈谈新手如何学习PHP网络编程第1/2页

星期一, 06月 2nd, 2008

文章开头就列举了那么多联系方式,难免会让大家感觉有点ADde意味,但是不容质疑de是,默默de确有那么丁点de表现欲^_^,虽然有时候过于细致会被人说婆妈,但是幸好这种细致对于编程来说,还是蛮有益de!
从默默自己向别人问怎么学PHP开始,到后来不少人又来问默默怎么学PHP,不管默默是新手,还是老鸟,似乎总是感觉摸不出一条清晰de脉络来,不过,默默既然学会了PHP,那么我走de这条路或多或少de有一定借鉴性.
PHPde背景恐怕就不用默默赘言了,我相信大家选择一种语言,并不是看它de背景和悠久历史,更重要de是看它de实用性,华而不实de语言哪怕是再辉煌de历史,也毕将步向没落,可喜de是PHP经受住了考验,也因此,它确实是一种值得学习de语言.
默默一直是听从别人de经验长大de,也因此在前辈们de经验里让默默少走了许多de弯路,更快de步入了正规,在此向那些我至尽不知道其名字de前辈们道声谢谢,在默默de眼里,帮助不分大小,只要是帮助,总会让默默de心里暖融融de,我想,前辈们帮助我,并不是为了得到我de一句谢谢,更多de是出于一种责任感和对默默de期望,所以我想,只有学好PHP,才能对得起前辈们de汗水.
正如我所说de,默默也终于感觉到了一种责任感,默默不知道自己de经验到底能帮助新手多少,但是默默明白,现在到了履行责任de时候了,我有必要把自己de经验告诉给所有希望学好PHPde人,只有这样才能让中国dePHP不断de进步,不断de发展,在世界上占据一席之地.
默默学习PHPde这段期间,感觉国内dePHP环境越来越成熟,规范也在逐渐de健全,PHPCHINAde成立,标志着与官方直接挂钩dePHP机构在中国正式落户了,在此献上迟到de掌声!
好de,切入正题:
我想在讲述自己de学习方式前,对那些期望能从我de文章中获得有用信息de人说一句心里话:
默默de文章不会对您de学习起到实质性de作用,您能否成功,还得靠自己de,坚持,坚持,再坚持,就是步入成功de不二法门.
我先把我自己学习PHPde过程做一下概括:
熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整de网页,对元素属性达到熟悉程度
理解动态语言de概念,运做机制,熟悉PHP语法
学习如何将PHP与HTML结合起来完成简单动态页面
接触MYSQL,开始设计数据库程序
不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板
完成一个功能齐全de动态站点
我de这套线路可能跟许多学习PHPde爱好者不谋而合,这也算是一个循序渐进de学习过程,不过新手不要看到上面de概括就以为学习蛮简单de,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单,即使是小吃部de烧饼也不是一下子就会做成de.
我先解释一下我de学习思路.
首先,理解网站这一概念之后不难看出,任何网站都是由网页组成de,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础.
在学习HTML中我想边学边做是最有效de方式,当然这一方式对于学习PHP同样是最有效de.
HTML中de任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,您才会记忆深刻,而一味de啃书,绝对是不行de,我想大部分新手之所以觉得概念难学,大部分是一个字“懒”,懒是阻止进步de最大敌人,所以克服掉懒de习惯,才能更快de学好一样东西.
也许您在学习PHPde时候只想尽快de开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低de新手不在少数,这种思想无疑于建造空中楼阁,您不建地基,何来de房顶呢?
OK,掌握静态网页de制作技术是学习开发网站de先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入de刨析了.
我假设您目前已经可以完成一个静态页面了,当然,做de好看难看是另外一说,默默de第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”de也不能嫌弃不是?这毕竟是咱de成果.
那么咱们就开始学习动态语言de概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟de东西,在网页里显示de时候却是另外一码事?其实这并不算乱七八糟,您写deHTML相关代码不也一样是一堆堆de字符吗?毕竟,相关代码并不是作为直接输出de,而是经过处理de,说白了,HTML是经过HTML解析器,而PHP当然也就通过PHP解析器了,跟学习HTML一样de道理,想让任何de解析器完成操作,就必须使用它们专用de语法结构,所以PHP长相奇怪也就不足为奇了.

php中iconv函数使用方法

星期一, 06月 2nd, 2008

iconv函数库能够完成各种字符集间de转换,是php编程中不可缺少de基础函数库.
1、下载libiconv函数库http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz;
2、解压缩tar -zxvf libiconv-1.9.2.tar.gz;
3、安装libiconv
#configure –prefix=/usr/local/iconv
#make
#make install
4、重新编译php 增加编译参数–with-iconv=/usr/local/iconv
windows下
最近在做一个小偷程序,需要用到iconv函数把抓取来过deutf-8编码de页面转成gb2312, 发现只有用iconv函数把抓取过来de数据一转码数据就会无缘无故de少一些. 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数de一个bug.iconv在转换字符”—”到gb2312时会出错
解决方法很简单,就是在需要转成de编码后加 “//IGNORE” 也就是iconv函数第二个参数后.如下:
以下为引用de内容:
iconv(”UTF-8″,”GB2312//IGNORE”,$data)
ignorede意思是忽略转换时de错误,如果没有ignore参数,所有该字符后面de字符串都无法被保存.

在PHP中使用模板的方法

星期一, 06月 2nd, 2008

好了,您可能想知道为什么您要使用FastTemplates.
·可以在几秒钟改变您de整个站点de外观
·抽象程序设计,没有垃圾HTML相关代码
·设计人员不需要关心全部de”模糊”相关代码
·令人惊讶地快
·更容易重用旧de模版(对普通de表单而说)
  FastTemplate源于一个有同样名称dePerl软件包(可以在CPAN上找到).您可以下载PHP de版本从它de主页(本站下载地址为:http://www.phpe.net/downloads/1.shtml).您只需要其中de一个类de文件(class.FastTemplate.php).

  让我首先解释一下在使用模板生成一个页面与简单地通过echo或print 将页面输出之间有什么不同吧.
简单地使用echo/printde方法很适合编写短de脚本,但是不能帮助您更好de组织和定制.模板在另一方面给
了您创建多国语言站点de能力,只是通过改动一个参数.他们可以促使您更关心您要做de.

  在开始编码之前不要害怕思考.它可能会花费一些时间,但是这些花费会随着项目de发展对您有所回报.

  那么,如何应用FastTemplate呢?首先您需要先进行一个简单地调用:
<?php $tpl=new FastTemplate (”path”); ?>
传递给它一个路径,是所有您de模板文件存放de目录.它返回一个对象,您可以用它进行参
数赋值,生成页面等等.
  FastTemplate是基于这样一种假设:一个很大de页面是由很多小de部分组成de.每一个部分有一个唯一
de名字.最小de部分是赋值给这样有着唯一名字de一段正常de文本字符串.这个可以通过
<?php
$tpl->assign(NAME, “text”);
?>
来完成.现在,如果您de一个模板包含{NAME},FastTemplate 就知道您
de意图了.

  另外,FastTemplate需要知道您想如何调用您de模板.您需要通过传递一个相关数组(associative
array)给 <?php $tpl->define(); ?>
来给它一个提示.
以下为引用de内容:
<?php
$tpl->define(array(foo => “foo.tpl”,
bar => “bar.tpl”));
?>
  这些赋值将分别给foo和bar以不同de文件(名为foo.tpl和bar.tpl).
  现在您想让FastTemplate替换在模板foo中de所有{MACROS}为相应de值.通过发出命令
以下为引用de内容:
<?php
$tpl->parse(PAGECONTENT, “foo”);
?>
来实现. 这个命令将把模板”foo”de内容赋给PAGECONTENT.   当然,我还没有做完,因为模板bar中为主要de页面定义,FastTemplate需要替换其中de
{PAGECONTENT}宏.我也需要给PAGETITLE赋值,如下所做:
以下为引用de内容:
<?php
$tpl->assign(PAGETITLE, “FooBar test”);
$tpl->parse(MAIN, “bar”);
?>
  容易吧,不是吗?我现在只需要把它输出: <?php
$tpl->FastPrint(MAIN);
?>
  下面三个文件显示了实际练习中de更多de细节描述.我不知道在现实生活了离了这个技术应如何生活 —
您de设计者会高兴,您de老板会微笑,因为您可以在更短de时间内做更多de事情.

以下为引用de内容:
bar.tpl
<!– bar.tpl –>
<HTML>
<HEAD><TITLE>Feature world - {PAGETITLE}</TITLE></HEAD>
<BODY BGCOLOR=BLACK TEXT=WHITE>
<H1>{PAGETITLE}</H1>
{PAGECONTENT}
</BODY>
</HTML>
foo.tpl <!– foo.tpl –>
很明显示什么都没做.请看{NAME}.
以下为引用de内容:

demo.php3
<?php
include “class.FastTemplate.php3″;
$tpl = new FastTemplate( “.”);
$tpl->define(array(foo => “foo.tpl”, bar => “bar.tpl”));
$tpl->assign(NAME, “me”);
$tpl->assign(PAGETITLE, “Welcome!”);


$tpl->parse(PAGECONTENT, “foo”);
$tpl->parse(MAIN, “bar”);

$tpl->FastPrint(MAIN);
?>
创建整个表格
  我也写了一个短de例子,用来演示如何通过单行模板来生成整个表格.它很有效,因为您仍然不需要直
接修改HTML文档.

  我增加一个模板de内容到一个已经定义过de唯一命名de后面来创建HTML表格.这个可以通过在调用
$tpl->parse()时,在模板名前加上一个”.”来实现. <?php
// 将模板foode内容赋给TPL1
$tpl->parse(TPL1, “foo”);
// 在TPL1后附上模板barde内容
$tpl->parse(TPL1, “.bar”);
?>
page.tpl


以下为引用de内容:
<HTML>
<HEAD><TITLE>Feature world - {PAGE_TITLE}</TITLE></HEAD>
<BODY BGCOLOR=BLACK TEXT=WHITE>
<H1>{PAGE_TITLE}</H1>
{PAGE_CONTENT}
</BODY>
</HTML>
table.tpl

以下为引用de内容:
<TABLE>
<TR> <TH>name</TH> <TH>size</TH> </TR>
{TABLE_ROWS}
</TABLE>

table_row.tpl
以下为引用de内容:
<TR>
<TD>{FILENAME}</TD>
<TD>{FILESIZE}</TD>
</TR>


yad.php3

以下为引用de内容:
<?php
include “class.FastTemplate.php3″;
function InitializeTemplates() {
global $tpl;
$tpl = new FastTemplate( “.”);
$tpl->define( array( page => “page.tpl”,
table => “table.tpl”,
table_row => “table_row.tpl” ) );
}
function ReadCurrentDirectory() {
global $tpl;
$handle = opendir( “.”);
while($filename = readdir($handle)) {
$tpl->assign(FILENAME, $filename);
$tpl->assign(FILESIZE, filesize($filename));
$tpl->parse(TABLE_ROWS, “.table_row”);
}
closedir($handle);
$tpl->parse(PAGE_CONTENT, “table”);
}

function PrintPage($title) {
global $tpl;
$tpl->assign(PAGE_TITLE, $title);
$tpl->parse(FINAL, “page”);
$tpl->FastPrint(FINAL);
}
InitializeTemplates();
ReadCurrentDirectory();
Printpage( “Yet Another Demo”);
?>
速度讨论


  ”Ok,” 您可能会说,”一切都太好了.但是它不会影响我de网站de速度吗?” www~
  不,您de网站可能变得更快.一个简单de原因就是:因为您作为一个编程人员关心de是设计您de应用和编写相关代码,您de相关代码将会更有效率,处理相同de任务更容易和更快速.所以,您可能会在上面列出de为什么考虑使用FastTemplate在您de项目中de原因列表中增加另一条理由.
  如果您只是想转换一个已经存在deweb站点,性能上de成功可能不会被注意到.我建议在PHP中使用正则表达式缓冲,它将对这种情况有所帮助.因为FastTemplate对每一个宏都使用正则表达式,每一个正则表达式将被只编译一次并且速度上de影响可以忽略不计.

php读取数据库信息的几种方法

星期一, 06月 2nd, 2008

<?
$dbh = @mysql_connect(”localhost:3306″,”root”,”9999″);
/* 定义变量dbh , mysql_connect()函数de意思是连接mysql数据库, “@”de意思是屏蔽报错 */
if(!$dbh){die(”error”);}
/* die()函数de意思是将括号里de字串送到浏览器并中断PHP程式 (Script).括号里de参数为欲送出de字串. */
@mysql_select_db(”ok”, $dbh);
/* 选择mysql服务器里de一个数据库,这里选de数据库名为 ok */
$q = “SELECT * FROM abc”;
/* 定义变量q, “SELECT * FROM abc”是一个SQL语句,意思是读取表abc中de数据 */
?>
<br />
<!–========= 方法一 =========–>
<br />
<?
$rs = mysql_query($q, $dbh);
/* 定义变量 rs ,函数mysql_query()de意思是:送出 query 字串供 MySQL 做相关de处理或者执行.由于php是从右往左执行de,所以,rsde值是服务器运行mysql_query()函数后返回de值 */
if(!$rs){die(”Valid result!”);}
echo “<table>”;
echo “<tr><td>ID</td><td>Name</td></tr>”;
while($row = mysql_fetch_row($rs)) echo “<tr><td>$row[0]</td><td>$row[1]</td></tr>”;
/* 定义量变(数组)row,并利用while循环,把数据一一写出来.
函数mysql_fetch_row()de意思是:将查询结果$rs单列拆到阵列变数中.
$row[0] 和 $row[1] de位置可以换*/
echo “</table>”;
?>
<br />
<!–========= 方法二 =========–>
<br />
<?
$rs = mysql_query($q, $dbh);
while($row = mysql_fetch_object($rs)) echo “$row->id $row->name <br />”;
/* id和name可以换位置 */
?>
<br />
<!–========= 方法三 =========–>
<br />
<?
$rs = mysql_query($q, $dbh);
while($row = mysql_fetch_array($rs)) echo “$row[id] $row[name] <br />”;
/* id和name可以换位置 */
?>
<!–========= 方法三最快 =========–>
<?
@mysql_close($dbh);
/* 关闭到mysql数据库de连接 */
?>

php循环输出数据库内容的代码

星期一, 06月 2nd, 2008

php do while方法

一般需要先$row=mysql_fetch_array($result)
然后
do{
something
}
while($row=mysql_fetch_array($result))
php while循环
while($row=mysql_fetch_array($result)){
}

开源SNS系统-ThinkSNS

星期一, 06月 2nd, 2008

今日闲逛落伍,看到thinkSNS,而且是开源de,还没有详细看,网站介绍:ThinkSNS源于办公圈项目,WEB端基于国内技术领先deThinkPHP框架开发,另外还有IM客户端软件.
ThinkSNS亮点
免费!开源!全部基于免费de开源项目,同时也作为免费开源项目.针对特殊定制要求提供收费服务.请看详细de版权协议. 国际化支持.多模版,多语言支持.基于ThinkPHP框架优秀de设计,ThinkSNS生来就具备优秀de国际化能力,支持多语言,多模版. 全面deSNS解决方案.ThinkSNS不仅仅是个web端de程序,伴随着ThinkSNS成长,我还会开发相关deIM和客户端支持. WP式de插件和FB式deAPI.ThinkPHP内置支持WordPress式插件开发,我还会提供完善deAPI,和其他系统无缝集成.
官方地址