一些关于PHP的知识

2018-09-07 14:04

阅读:551

  1、如何配置PhpMyAdmin2.9
网络上很多教程的配置文件是针对PhpMyAdmin底版本的,一开始连2.9配置文件都不知道放哪里?
配置文件相对地址是: (不是这个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(setnamesgb2312);

5、用PHP输出静态页面

有2种

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

第一种:利用模板

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

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

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

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

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

<?php
require(smarty/Smarty.class.php);
$t=newSmarty;
$t->assign(title,HelloWorld!);
$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();
echoHelloWorld!;
$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*FROMabc;

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

?>

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

<?

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

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

if(!$rs){die(Validresult!);}

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

?>


评论


亲,登录后才可以留言!