Php部分常見問題總結(jié)第2/2頁
更新時(shí)間:2006年12月09日 00:00:00 作者:
20:我點(diǎn)擊后退按鈕,為什么之前填寫的東西不見
這是因?yàn)槟闶褂昧藄ession.
解決辦法:
<?php
session_cache_limiter('private, must-revalidate');
session_start();
...........
..........
?>
21:怎么在圖片里顯示IP地址
<?
Header("Content-type: image/png");
$img = ImageCreate(180,50);
$ip = $_SERVER['REMOTE_ADDR'];
ImageColorTransparent($img,$bgcolor);
$bgColor = ImageColorAllocate($img, 0x2c,0x6D,0xAF); // 背景顏色
$shadow = ImageColorAllocate($img, 250,0,0); // 陰影顏色
$textColor = ImageColorAllocate($img, oxff,oxff,oxff); // 字體顏色
ImageTTFText($img,10,0,78,30,$shadow,"d:/windows/fonts/Tahoma.ttf",$ip); //顯示背景
ImageTTFText($img,10,0,25,28,$textColor,"d:/windows/fonts/Tahoma.ttf","your ip is".$ip); // 顯示IP
ImagePng($img);
imagecreatefrompng($img);
ImageDestroy($img);
?>
22:如何取得用戶的真實(shí)IP
<?
function iptype1 () {
if (getenv("HTTP_CLIENT_IP")) {
return getenv("HTTP_CLIENT_IP");
}
else {
return "none";
}
}
function iptype2 () {
if (getenv("HTTP_X_FORWARDED_FOR")) {
return getenv("HTTP_X_FORWARDED_FOR");
}
else {
return "none";
}
}
function iptype3 () {
if (getenv("REMOTE_ADDR")) {
return getenv("REMOTE_ADDR");
}
else {
return "none";
}
}
function ip() {
$ip1 = iptype1();
$ip2 = iptype2();
$ip3 = iptype3();
if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") {
return $ip1;
}
elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") {
return $ip2;
}
elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") {
return $ip3;
}
else {
return "none";
}
}
Echo ip();
?>
23:如何從數(shù)據(jù)庫讀取三天內(nèi)的所有記錄
首先表格里要有一個(gè)DATETIME字段記錄時(shí)間,
格式為'2003-7-15 16:50:00'
SELECT * FROM `xltxlm` WHERE TO_DAYS(NOW()) - TO_DAYS(`date`) <= 3;
24:如何遠(yuǎn)程鏈接Mysql數(shù)據(jù)庫
在增加用戶的mysql表里有一個(gè)host字段,修改為"%",或者指定允許連接的ip地址,這樣,你就可以遠(yuǎn)程調(diào)用了。
$link=mysql_connect("192.168.1.80:3306","root","");
25:正則到底怎么用
點(diǎn)擊這里
正則表達(dá)式中的特殊字符
26:用Apache后,主頁出現(xiàn)亂碼
方法一:
AddDefaultCharset ISO-8859-1 改為 AddDefaultCharset off
方法二:
AddDefaultCharset GB2312
========================================================
tip:
大家貼代碼時(shí)GB2312會(huì)被解釋成??????
改成這樣就不會(huì)
[color=#000000]GB[/color]2312
10:如何比較兩個(gè)日期相差幾天,(更簡單的算法)
<?PHP
$Date_1="2003-7-15";//也可以是:$Date_1="2003-7-15 23:29:14";
$Date_2="1982-10-1";
$d1=strtotime($Date_1);
$d2=strtotime($Date_2);
$Days=round(($d1-$d2)/3600/24);
Echo "偶已經(jīng)奮斗了 $Days 天^_^";
?>
27:為什么單引號,雙引號在接受頁面變成(\\'\")
解決方法:
方法一:在php.ini中設(shè)置:magic_quotes_gpc = Off
方法二: $str=stripcslashes($str)
28:怎么讓程序一直運(yùn)行下去,而不是超過30秒就停止
set_time_limit(60)//最長運(yùn)行時(shí)間一分鐘
set_time_limit(0)//運(yùn)行到程序自己結(jié)束,或手動(dòng)停止
29:計(jì)算當(dāng)前在線人數(shù)
例子一:用文本實(shí)現(xiàn)
<?php
//首先你要有讀寫文件的權(quán)限
//本程序可以直接運(yùn)行,第一次報(bào)錯(cuò),以后就可以
$online_log = "count.dat"; //保存人數(shù)的文件,
$timeout = 30;//30秒內(nèi)沒動(dòng)作者,認(rèn)為掉線
$entries = file($online_log);
$temp = array();
for ($i=0;$i<count($entries);$i++) {
$entry = explode(",",trim($entries[$i]));
if (($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {
array_push($temp,$entry[0].",".$entry[1]."n"); //取出其他瀏覽者的信息,并去掉超時(shí)者,保存進(jìn)$temp
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."n"); //更新瀏覽者的時(shí)間
$users_online = count($temp); //計(jì)算在線人數(shù)
$entries = implode("",$temp);
//寫入文件
$fp = fopen($online_log,"w");
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些網(wǎng)絡(luò)文件系統(tǒng)中正常工作
fputs($fp,$entries);
flock($fp,LOCK_UN);
fclose($fp);
echo "當(dāng)前有".$users_online."人在線";
?>
例子二:
用數(shù)據(jù)庫實(shí)現(xiàn)在線用戶
30:什么是模板,怎么用
這里有幾篇關(guān)于模板的文章
我用的是phplib模板
下面是其中幾個(gè)函數(shù)的使用
$T->Set_File("隨便定義","模板文件.tpl");
$T->Set_Block("在set_file中定義的","<!-- 來自模板 -->","隨便定義");
$T->arse("在Set_Block中定義的","<!-- 來自模板 -->",true);
$T->arse("隨便輸出結(jié)果","在Set_File中定義的");
設(shè)置循環(huán)格式為:
<!--(多于一個(gè)空格) BEGIN $handle(多于一個(gè)空格)-->
如何將模板生成靜態(tài)網(wǎng)頁
<?php
//這里使用phplib模板
............
............
$tpl->parse("output","html");
$output = $tpl->get("output");// $output 為整個(gè)網(wǎng)頁內(nèi)容
function wfile($file,$content,$mode='w') {
$oldmask = umask(0);
$fp = fopen($file, $mode);
if (!$fp) return false;
fwrite($fp,$content);
fclose($fp);
umask($oldmask);
return true;
}
// 寫到文件里
Wfile($FILE,$output);
header("location:$FILE");//重定向到生成的網(wǎng)頁
}
?>
phplib下載地址 smarty下載地址
31:怎么用php解釋字符
比如:輸入2+2*(1+2),自動(dòng)輸出8
可以用eval函數(shù)
<form method=post action="">
<input type="text" name="str"><input type="submit">
</form>
<?php
$str=$_POST['str'];
eval("$o=$str;");
Echo "$o";
?>
另外,用此函數(shù)必須特別小心!!
如果有人輸入format: d:會(huì)是什么結(jié)果?
相關(guān)文章
ThinkPHP like模糊查詢,like多匹配查詢,between查詢,in查詢,一般查詢書寫方法
ThinkPHP的數(shù)據(jù)庫條件查詢語句有字符串式,數(shù)組式書寫方法,字符串式即是原生式而數(shù)組式的查詢語句因書寫方式與特定字符的原因比較復(fù)雜,今天為大家講解一下ThinkPHP數(shù)組式查詢語句的書寫方法2018-09-09
discuz authcode 經(jīng)典php加密解密函數(shù)解析
康盛的 authcode 函數(shù)可以說對中國的PHP界作出了重大貢獻(xiàn)。包括康盛自己的產(chǎn)品,以及大部分中國使用PHP的公司都用這個(gè)函數(shù)進(jìn)行加密,authcode 是使用異或運(yùn)算進(jìn)行加密和解密。2010-02-02
PHP 返回13位時(shí)間戳的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄狿HP 返回13位時(shí)間戳的實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
一文詳解PHP連接MySQL數(shù)據(jù)庫的三種方式
PHP與MySQL的連接有三種API接口,分別是:PHP的MySQL擴(kuò)展 、PHP的mysqli擴(kuò)展 、PHP數(shù)據(jù)對象(PDO)。本文將詳解這三種方式的示例代碼,需要的可以參考一下2022-05-05

