Php部分常見問題總結第2/2頁
更新時間:2006年12月09日 00:00:00 作者:
20:我點擊后退按鈕,為什么之前填寫的東西不見
這是因為你使用了session.
解決辦法:
<?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:如何取得用戶的真實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:如何從數據庫讀取三天內的所有記錄
首先表格里要有一個DATETIME字段記錄時間,
格式為'2003-7-15 16:50:00'
SELECT * FROM `xltxlm` WHERE TO_DAYS(NOW()) - TO_DAYS(`date`) <= 3;
24:如何遠程鏈接Mysql數據庫
在增加用戶的mysql表里有一個host字段,修改為"%",或者指定允許連接的ip地址,這樣,你就可以遠程調用了。
$link=mysql_connect("192.168.1.80:3306","root","");
25:正則到底怎么用
點擊這里
正則表達式中的特殊字符
26:用Apache后,主頁出現亂碼
方法一:
AddDefaultCharset ISO-8859-1 改為 AddDefaultCharset off
方法二:
AddDefaultCharset GB2312
========================================================
tip:
大家貼代碼時GB2312會被解釋成??????
改成這樣就不會
[color=#000000]GB[/color]2312
10:如何比較兩個日期相差幾天,(更簡單的算法)
<?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 "偶已經奮斗了 $Days 天^_^";
?>
27:為什么單引號,雙引號在接受頁面變成(\\'\")
解決方法:
方法一:在php.ini中設置:magic_quotes_gpc = Off
方法二: $str=stripcslashes($str)
28:怎么讓程序一直運行下去,而不是超過30秒就停止
set_time_limit(60)//最長運行時間一分鐘
set_time_limit(0)//運行到程序自己結束,或手動停止
29:計算當前在線人數
例子一:用文本實現
<?php
//首先你要有讀寫文件的權限
//本程序可以直接運行,第一次報錯,以后就可以
$online_log = "count.dat"; //保存人數的文件,
$timeout = 30;//30秒內沒動作者,認為掉線
$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"); //取出其他瀏覽者的信息,并去掉超時者,保存進$temp
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."n"); //更新瀏覽者的時間
$users_online = count($temp); //計算在線人數
$entries = implode("",$temp);
//寫入文件
$fp = fopen($online_log,"w");
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些網絡文件系統中正常工作
fputs($fp,$entries);
flock($fp,LOCK_UN);
fclose($fp);
echo "當前有".$users_online."人在線";
?>
例子二:
用數據庫實現在線用戶
30:什么是模板,怎么用
這里有幾篇關于模板的文章
我用的是phplib模板
下面是其中幾個函數的使用
$T->Set_File("隨便定義","模板文件.tpl");
$T->Set_Block("在set_file中定義的","<!-- 來自模板 -->","隨便定義");
$T->arse("在Set_Block中定義的","<!-- 來自模板 -->",true);
$T->arse("隨便輸出結果","在Set_File中定義的");
設置循環(huán)格式為:
<!--(多于一個空格) BEGIN $handle(多于一個空格)-->
如何將模板生成靜態(tài)網頁
<?php
//這里使用phplib模板
............
............
$tpl->parse("output","html");
$output = $tpl->get("output");// $output 為整個網頁內容
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");//重定向到生成的網頁
}
?>
phplib下載地址 smarty下載地址
31:怎么用php解釋字符
比如:輸入2+2*(1+2),自動輸出8
可以用eval函數
<form method=post action="">
<input type="text" name="str"><input type="submit">
</form>
<?php
$str=$_POST['str'];
eval("$o=$str;");
Echo "$o";
?>
另外,用此函數必須特別小心!!
如果有人輸入format: d:會是什么結果?
相關文章
PHP面向對象程序設計高級特性詳解(接口,繼承,抽象類,析構,克隆等)
這篇文章主要介紹了PHP面向對象程序設計高級特性,結合實例形式分析了php面向對象程序設計中所涉及的靜態(tài)屬性、常量屬性、接口、繼承、抽象類、析構、克隆等概念與使用技巧,需要的朋友可以參考下2016-12-12Laravel 5.4重新登錄實現跳轉到登錄前頁面的原理和方法
在日常開發(fā)中,我們經常遇到一個需求,就是用戶登陸后存在過期時間,超時用戶需重新登錄,下面這篇文章主要給大家介紹了關于Laravel 5.4重新登錄實現跳轉到登錄前頁面的原理和方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07