一些关于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 相关文章推荐
PHP中显示格式化的用户输入
Oct 09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续四
Apr 03 PHP
php读取EXCEL文件 php excelreader读取excel文件
Dec 06 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
destoon利用Rewrite规则设置网站安全
Jun 21 PHP
destoon常用的安全设置概述
Jun 21 PHP
php include类文件超时问题处理
Feb 06 PHP
PHP JSON格式的中文显示问题解决方法
Apr 09 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
Nov 15 PHP
php实现的错误处理封装类实例
Jun 20 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 中的批处理的实现
2007/06/14 PHP
PHP 开源AJAX框架14种
2009/08/24 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
基于jquery的跨域调用文件
2010/11/19 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
vue监听用户输入和点击功能
2019/09/27 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
Python抓取手机号归属地信息示例代码
2016/11/28 Python
python实现字符串和字典的转换
2018/09/29 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
软件测试英文面试题
2012/10/14 面试题
语文教学感言
2014/02/06 职场文书
年级组长自我鉴定
2014/02/22 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
求职信结尾怎么写
2014/05/26 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
大国崛起英国观后感
2015/06/02 职场文书
小学语文教师研修日志
2015/11/13 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL