一些关于PHP的知识


Posted in PHP onNovember 17, 2006

1、如何配置PhpMyAdmin2.9
网络上很多教程的配置文件是针对PhpMyAdmin底版本的,一开始连2.9配置文件都不知道放哪里?
配置文件相对地址是:config.sample.inc.php  (不是这个libraries/config.default.inc.php)

2、让phpMyAdmin使用密码登陆
在设置config.inc.php设置以下参数:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = '123456'; // 随便设置一个非空字符串
$cfg['DefaultLang'] = 'zh'; // 默认显示中文,可选

3、没有发现 PHP 的扩展设置mbstring, 而当前系统好像在使用宽字符集。没有 mbstring....修改php.ini 文件extension=php_mbsting.dll 要重起才能生效!

4、php读取mysql数据库中文字符的时候全部显示问号?
在查询数据库之前,先使用mysql_query("set names 'gb2312'");

5、用PHP输出静态页面

有2种

一种是利用模板技术,另一种是用ob系列函数。两种方法,看起来都差不多,但是实际上,却是不同的。

第一种:利用模板

目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smarttemplate等。

它们每一种模板,都有一个获取输出内容的函数。

我们生成静态页面的方法,就是利用了这个函数。

用这个方法的优点是,代码比较清晰,可读性好。

这里我用smarty做例子,说明如何生成静态页

<?php
require('smarty/Smarty.class.php');
$t = new Smarty;
$t->assign("title","Hello World!");
$content = $t->fetch("templates/index.htm");
//这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
$fp = fopen("archives/2005/05/19/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?> 

第二种方法:利用ob系列的函数

这里用到的函数主要是 ob_start(), ob_end_flush(), ob_get_content(),

其中ob_start()是打开浏览器缓冲区的意思,

打开缓冲后,所有来自PHP程序的非文件头信息均不会发送,

而是保存在内部缓冲区,直到你使用了ob_end_flush().

而这里最重要的一个函数,就是ob_get_contents(),

这个函数的作用是获取缓冲区的内容,相当于上面的那个fetch(),

道理一样的。代码:

<?php
ob_start();
echo "Hello World!";
$content = ob_get_contents();//取得php页面输出的全部内容
$fp = fopen("0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>
6、PHP语言读取数据库详解
这段代码的功能是:

连接到一个 url 地址为localhost 、 端口为 3306 的mysql服务器上。mysql服务器的帐号是"root",密码是"9999"。mysql 服务器上有一个数据库 ok , 数据库里有一个表 abc。表 abc 一共为两列,列名分别是 "id" 和 "name" ,将 abc 里的所有数据读出来。

<?

$dbh = @mysql_connect("localhost:3306","root","9999");

/* 定义变量dbh , mysql_connect()函数的意思是连接mysql数据库, "@"的意思是屏蔽报错 */

if(!$dbh){die("error");}

/* die()函数的意思是将括号里的字串送到浏览器并中断PHP程式 (Script)。括号里的参数为欲送出的字串。 */

@mysql_select_db("ok", $dbh);

/* 选择mysql服务器里的一个数据库,这里选的数据库名为 ok */

$q = "Select * FROM abc";

/* 定义变量q, "Select * FROM abc"是一个SQL语句,意思是读取表abc中的数据 */

?>

<br />
<!--========= 方法一 =========-->
<br />

<?

$rs = mysql_query($q, $dbh);

/* 定义变量 rs ,函数mysql_query()的意思是:送出 query 字串供 MySQL 做相关的处理或者执行.由于php是从右往左执行的,所以,rs的值是服务器运行mysql_query()函数后返回的值 */

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()的意思是:将查询结果$rs单列拆到阵列变数中. 
$row[0] 和 $row[1] 的位置可以换*/

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数据库的连接 */

?>

PHP 相关文章推荐
用文本文件制作留言板提示(下)
Oct 09 PHP
PHP 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
PHP间隔一段时间执行代码的方法
Dec 02 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
Apr 22 PHP
浅谈PHP中的那些魔术常量
Dec 02 PHP
PHP4和PHP5共存于一系统
Nov 17 #PHP
Apache2 httpd.conf 中文版
Nov 17 #PHP
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 #PHP
一个MYSQL操作类
Nov 16 #PHP
一个好用的分页函数
Nov 16 #PHP
第十五节--Zend引擎的发展
Nov 16 #PHP
第十四节--命名空间
Nov 16 #PHP
You might like
php 验证码实例代码
2010/06/01 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
PHP插入排序实现代码
2013/04/04 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
Python正则表达式分组概念与用法详解
2017/06/24 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
教你打造完美的创业计划书
2014/01/06 职场文书
人事部岗位职责范本
2014/03/05 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
党员批评与自我批评
2014/10/15 职场文书
先进典型发言材料
2014/12/30 职场文书