一些关于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
PHP中怎样保持SESSION不过期 原理及方案介绍
Aug 08 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
symfony表单与页面实现技巧
Jan 26 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
Jul 13 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 PHP
laravel框架实现后台登录、退出功能示例
Oct 31 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 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
GD输出汉字的函数的分析
2006/10/09 PHP
php通用防注入程序 推荐
2011/02/26 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
jQuery动态添加
2016/04/07 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
vuex实现简易计数器
2016/10/27 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
详解基于webpack2.x的vue2.x的多页面站点
2017/08/21 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
Python找出最小的K个数实例代码
2018/01/04 Python
python实现输入数字的连续加减方法
2018/06/22 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
python 字符串追加实例
2019/07/20 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
法院实习人员自我鉴定
2013/09/26 职场文书
法制宣传月活动方案
2014/05/11 职场文书
美术教师求职信范文
2015/03/20 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers