一些關(guān)于PHP的知識
更新時間:2006年11月17日 00:00:00 作者:
1、如何配置PhpMyAdmin2.9
網(wǎng)絡(luò)上很多教程的配置文件是針對PhpMyAdmin底版本的,一開始連2.9配置文件都不知道放哪里?
配置文件相對地址是:config.sample.inc.php (不是這個libraries/config.default.inc.php)
2、讓phpMyAdmin使用密碼登陸
在設(shè)置config.inc.php設(shè)置以下參數(shù):
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = '123456'; // 隨便設(shè)置一個非空字符串
$cfg['DefaultLang'] = 'zh'; // 默認(rèn)顯示中文,可選
3、沒有發(fā)現(xiàn) PHP 的擴(kuò)展設(shè)置mbstring, 而當(dāng)前系統(tǒng)好像在使用寬字符集。沒有 mbstring....修改php.ini 文件extension=php_mbsting.dll 要重起才能生效!
4、php讀取mysql數(shù)據(jù)庫中文字符的時候全部顯示問號?
在查詢數(shù)據(jù)庫之前,先使用mysql_query("set names 'gb2312'");
5、用PHP輸出靜態(tài)頁面
有2種
一種是利用模板技術(shù),另一種是用ob系列函數(shù)。兩種方法,看起來都差不多,但是實際上,卻是不同的。
第一種:利用模板
目前PHP的模板可以說是很多了,有功能強(qiáng)大的smarty,還有簡單易用的smarttemplate等。
它們每一種模板,都有一個獲取輸出內(nèi)容的函數(shù)。
我們生成靜態(tài)頁面的方法,就是利用了這個函數(shù)。
用這個方法的優(yōu)點是,代碼比較清晰,可讀性好。
這里我用smarty做例子,說明如何生成靜態(tài)頁
<?php
require('smarty/Smarty.class.php');
$t = new Smarty;
$t->assign("title","Hello World!");
$content = $t->fetch("templates/index.htm");
//這里的 fetch() 就是獲取輸出內(nèi)容的函數(shù),現(xiàn)在$content變量里面,就是要顯示的內(nèi)容了
$fp = fopen("archives/2005/05/19/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>
第二種方法:利用ob系列的函數(shù)
這里用到的函數(shù)主要是 ob_start(), ob_end_flush(), ob_get_content(),
其中ob_start()是打開瀏覽器緩沖區(qū)的意思,
打開緩沖后,所有來自PHP程序的非文件頭信息均不會發(fā)送,
而是保存在內(nèi)部緩沖區(qū),直到你使用了ob_end_flush().
而這里最重要的一個函數(shù),就是ob_get_contents(),
這個函數(shù)的作用是獲取緩沖區(qū)的內(nèi)容,相當(dāng)于上面的那個fetch(),
道理一樣的。代碼:
<?php
ob_start();
echo "Hello World!";
$content = ob_get_contents();//取得php頁面輸出的全部內(nèi)容
$fp = fopen("0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>
6、PHP語言讀取數(shù)據(jù)庫詳解
這段代碼的功能是:
連接到一個 url 地址為localhost 、 端口為 3306 的mysql服務(wù)器上。mysql服務(wù)器的帳號是"root",密碼是"9999"。mysql 服務(wù)器上有一個數(shù)據(jù)庫 ok , 數(shù)據(jù)庫里有一個表 abc。表 abc 一共為兩列,列名分別是 "id" 和 "name" ,將 abc 里的所有數(shù)據(jù)讀出來。
<?
$dbh = @mysql_connect("localhost:3306","root","9999");
/* 定義變量dbh , mysql_connect()函數(shù)的意思是連接mysql數(shù)據(jù)庫, "@"的意思是屏蔽報錯 */
if(!$dbh){die("error");}
/* die()函數(shù)的意思是將括號里的字串送到瀏覽器并中斷PHP程式 (Script)。括號里的參數(shù)為欲送出的字串。 */
@mysql_select_db("ok", $dbh);
/* 選擇mysql服務(wù)器里的一個數(shù)據(jù)庫,這里選的數(shù)據(jù)庫名為 ok */
$q = "Select * FROM abc";
/* 定義變量q, "Select * FROM abc"是一個SQL語句,意思是讀取表abc中的數(shù)據(jù) */
?>
<br />
<!--========= 方法一 =========-->
<br />
<?
$rs = mysql_query($q, $dbh);
/* 定義變量 rs ,函數(shù)mysql_query()的意思是:送出 query 字串供 MySQL 做相關(guān)的處理或者執(zhí)行.由于php是從右往左執(zhí)行的,所以,rs的值是服務(wù)器運行mysql_query()函數(shù)后返回的值 */
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>";
/* 定義量變(數(shù)組)row,并利用while循環(huán),把數(shù)據(jù)一一寫出來.
函數(shù)mysql_fetch_row()的意思是:將查詢結(jié)果$rs單列拆到陣列變數(shù)中.
$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);
/* 關(guān)閉到mysql數(shù)據(jù)庫的連接 */
?>
網(wǎng)絡(luò)上很多教程的配置文件是針對PhpMyAdmin底版本的,一開始連2.9配置文件都不知道放哪里?
配置文件相對地址是:config.sample.inc.php (不是這個libraries/config.default.inc.php)
2、讓phpMyAdmin使用密碼登陸
在設(shè)置config.inc.php設(shè)置以下參數(shù):
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = '123456'; // 隨便設(shè)置一個非空字符串
$cfg['DefaultLang'] = 'zh'; // 默認(rèn)顯示中文,可選
3、沒有發(fā)現(xiàn) PHP 的擴(kuò)展設(shè)置mbstring, 而當(dāng)前系統(tǒng)好像在使用寬字符集。沒有 mbstring....修改php.ini 文件extension=php_mbsting.dll 要重起才能生效!
4、php讀取mysql數(shù)據(jù)庫中文字符的時候全部顯示問號?
在查詢數(shù)據(jù)庫之前,先使用mysql_query("set names 'gb2312'");
5、用PHP輸出靜態(tài)頁面
有2種
一種是利用模板技術(shù),另一種是用ob系列函數(shù)。兩種方法,看起來都差不多,但是實際上,卻是不同的。
第一種:利用模板
目前PHP的模板可以說是很多了,有功能強(qiáng)大的smarty,還有簡單易用的smarttemplate等。
它們每一種模板,都有一個獲取輸出內(nèi)容的函數(shù)。
我們生成靜態(tài)頁面的方法,就是利用了這個函數(shù)。
用這個方法的優(yōu)點是,代碼比較清晰,可讀性好。
這里我用smarty做例子,說明如何生成靜態(tài)頁
<?php
require('smarty/Smarty.class.php');
$t = new Smarty;
$t->assign("title","Hello World!");
$content = $t->fetch("templates/index.htm");
//這里的 fetch() 就是獲取輸出內(nèi)容的函數(shù),現(xiàn)在$content變量里面,就是要顯示的內(nèi)容了
$fp = fopen("archives/2005/05/19/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>
第二種方法:利用ob系列的函數(shù)
這里用到的函數(shù)主要是 ob_start(), ob_end_flush(), ob_get_content(),
其中ob_start()是打開瀏覽器緩沖區(qū)的意思,
打開緩沖后,所有來自PHP程序的非文件頭信息均不會發(fā)送,
而是保存在內(nèi)部緩沖區(qū),直到你使用了ob_end_flush().
而這里最重要的一個函數(shù),就是ob_get_contents(),
這個函數(shù)的作用是獲取緩沖區(qū)的內(nèi)容,相當(dāng)于上面的那個fetch(),
道理一樣的。代碼:
<?php
ob_start();
echo "Hello World!";
$content = ob_get_contents();//取得php頁面輸出的全部內(nèi)容
$fp = fopen("0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>
6、PHP語言讀取數(shù)據(jù)庫詳解
這段代碼的功能是:
連接到一個 url 地址為localhost 、 端口為 3306 的mysql服務(wù)器上。mysql服務(wù)器的帳號是"root",密碼是"9999"。mysql 服務(wù)器上有一個數(shù)據(jù)庫 ok , 數(shù)據(jù)庫里有一個表 abc。表 abc 一共為兩列,列名分別是 "id" 和 "name" ,將 abc 里的所有數(shù)據(jù)讀出來。
<?
$dbh = @mysql_connect("localhost:3306","root","9999");
/* 定義變量dbh , mysql_connect()函數(shù)的意思是連接mysql數(shù)據(jù)庫, "@"的意思是屏蔽報錯 */
if(!$dbh){die("error");}
/* die()函數(shù)的意思是將括號里的字串送到瀏覽器并中斷PHP程式 (Script)。括號里的參數(shù)為欲送出的字串。 */
@mysql_select_db("ok", $dbh);
/* 選擇mysql服務(wù)器里的一個數(shù)據(jù)庫,這里選的數(shù)據(jù)庫名為 ok */
$q = "Select * FROM abc";
/* 定義變量q, "Select * FROM abc"是一個SQL語句,意思是讀取表abc中的數(shù)據(jù) */
?>
<br />
<!--========= 方法一 =========-->
<br />
<?
$rs = mysql_query($q, $dbh);
/* 定義變量 rs ,函數(shù)mysql_query()的意思是:送出 query 字串供 MySQL 做相關(guān)的處理或者執(zhí)行.由于php是從右往左執(zhí)行的,所以,rs的值是服務(wù)器運行mysql_query()函數(shù)后返回的值 */
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>";
/* 定義量變(數(shù)組)row,并利用while循環(huán),把數(shù)據(jù)一一寫出來.
函數(shù)mysql_fetch_row()的意思是:將查詢結(jié)果$rs單列拆到陣列變數(shù)中.
$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);
/* 關(guān)閉到mysql數(shù)據(jù)庫的連接 */
?>
相關(guān)文章
php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實現(xiàn)
本文為大家介紹下php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實現(xiàn),感興趣的朋友不要錯過2013-12-12PHP進(jìn)制轉(zhuǎn)換實例分析(2,8,16,36,64進(jìn)制至10進(jìn)制相互轉(zhuǎn)換)
這篇文章主要介紹了PHP進(jìn)制轉(zhuǎn)換,結(jié)合具體實例形式分析了2,8,16,36,64進(jìn)制至10進(jìn)制相互轉(zhuǎn)換實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2017-02-02PHP zlib擴(kuò)展實現(xiàn)頁面GZIP壓縮輸出
GZIP(GNU-ZIP)是一種壓縮技術(shù)。經(jīng)過GZIP壓縮后頁面大小可以變?yōu)樵瓉淼?0%甚至更小。這樣用戶瀏覽的時候就會感覺很爽很愉快!2010-06-06PHP API接口必備之輸出json格式數(shù)據(jù)示例代碼
這篇文章主要給大家介紹了關(guān)于PHP API接口必備之輸出json格式數(shù)據(jù)的相關(guān)資料文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06Centos 6.5下PHP 5.3安裝ffmpeg擴(kuò)展的步驟詳解
大家都知道ffmpeg是一款視頻流的軟件了,我們在linux系統(tǒng)中可以安裝ffmpeg了,這篇文章主要介紹了在Centos 6.5下PHP 5.3安裝ffmpeg擴(kuò)展的步驟,需要的朋友可以參考下。2017-03-03