顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - 868nic

頁: [1] 2
1
我已經試出來了

代碼: [選擇]

<?
function getfilesize($dir) {

  $size = 0;
  $open_dir = opendir($dir);
  while(($dirs = readdir($open_dir)) != false){
    if (is_file("$dir/$dirs")){
      $size += filesize("$dir/$dirs");
    }
    if (is_dir("$dir/$dirs") && $dirs != "." && $dirs != ".."){
      $size += getfilesize("$dir/$dirs"); //將回傳的值累
    }
  }
  closedir($open_dir);
  return $size;

}
echo getfilesize("D:\123");
?>

2
D:\123內有的檔案結構
123
----aaa
--------bbb

<?
function getfilesize($dir) {

  $size = 0;
  $open_dir = opendir($dir);
  while(($dirs = readdir($open_dir)) != false){
    if (is_file("$dir/$dirs")){
      $size += filesize("$dir/$dirs");
    }
    if (is_dir("$dir/$dirs") && $dirs != "." && $dirs != ".."){
      getfilesize("$dir/$dirs");
    }
  }
  closedir($open_dir);
  echo $size . "<BR>";

}
echo getfilesize("D:\123");
?>

結果印出
15097
533377
61209

請問如何將這三個值作加總

3
代碼: [選擇]

$session_dir = "../session/";
session_save_path($session_dir);
$sid = "";
if (isset($_COOKIE["PHPSESSID"])){
    $sid = $_COOKIE["PHPSESSID"];
}
if (isset($_GET["PHPSESSID"])){
    $sid = $_GET["PHPSESSID"];
}
if ($sid == ""){
    header("Location:login.php");
}else{
    session_start();
    session_id($sid);
    session_name();
    $getsession_username = $_SESSION["username"];
    $filedir = opendir($session_dir);
    $sessionfile_time = "";
    while(($file = readdir($filedir)) != null){
        $sessionfilename = "sess_" . $sid;
        if ($file == $sessionfilename){
            $sessionfile = $session_dir . "/" . $file;
            $sessionfile_time = date("Y-m-d H:i:s",filemtime($sessionfile));
        }
    }
    closedir($filedir);
    clearstatcache();
}
echo "檔案最後更新時間:" . $sessionfile_time;

假設該檔案目前的最後更新時間為:2005-05-31 14:54:58
當程式讀到session_start();時將該檔案的最後更新時間變更為:2005-05-31 14:55:58
但最後echo "檔案最後更新時間:" . $sessionfile_time; 確顯示2005-05-31 14:54:58

請問這樣寫法為何無法得到檔案最後更新時間,跟我該檔案的時間有出入,請學長們指點 :cry:

4
PHP程式設計討論區 / 有關PHP的Mail問題
« 於: 2005-03-28 16:53 »
多謝Darkhero大大寶貴的意見

這2種作法我都會作,只是要請教各位大大覺得那個作法比較好而已^^

是不是作法一,會讓程式日後容易維護呢?

5
PHP程式設計討論區 / 有關PHP的Mail問題
« 於: 2005-03-26 21:59 »
有關PHP的Mail問題,我想了很久,不知什麼樣的作法比較好,我的作法大約說明一下

我要用PHP送Mail給客戶,信件內容有變數,也有IF判斷
我想到2個作法,可以作到我要的效果

一:將信的html及變數存到資料庫,要寄信時用過濾字串一一將變數及判斷過濾成PHP語法

二:寄給客戶的信,用框架將要給客戶看的內容(php)含進去,並在信內容插入安全認證碼,確保客戶只能從他的信收信才能觀看

請教各位大大覺得那個作法比較好呢?

6
PHP程式設計討論區 / Smarty樣板引擎簡介
« 於: 2005-01-26 15:35 »
引述: "Darkhero"
引述: "868nic"
請問smarty對於functions的用法為何?

我找了好久都沒找到相關教學

有沒有好心人指點一下,謝謝!


對於什麼 function ?....


自訂的function

例iif()

7
PHP程式設計討論區 / Smarty樣板引擎簡介
« 於: 2005-01-25 14:59 »
請問smarty對於functions的用法為何?

我找了好久都沒找到相關教學

有沒有好心人指點一下,謝謝!

8
假設使用者是從http://tw.yahoo.com來的

不知是否有什麼方法取得來訪者的原始來源url

9
目的:備份及還原"整個"MySQL資料庫
我的環境:Windows XP
phpMyAdmin版本:2.6.0

我的備份步驟:
登入phpMyAdmin > 輸出 > 全選 > 下載儲存
產生 localhost.sql 檔

但卻找不到還原"整個"的方法

ps:單一資料庫備份及還原我會,"整個"我就不會了,望高手指教!

10
關於Server2003有些問題請教一下

1.假設我架了2台AD,如果主AD掛了,次AD若要取代主AD的工作有那些地方要設定呢?

2.書上寫2台AD的架構能提供容錯,即使一台網域控制站故障了,仍然能夠由其他的網域控制站來提供服務,我試過把主AD關掉,可是由其他電腦卻查詢不到,我該怎麼設才能有這樣的功能呢?

3.如何改變2台AD的DNS複寫時間?

4.我在做DFS時,MySQL資料夾好像會Lock住,造成檔案複寫失敗,有無其他解決方法?

11
Linux 討論版 / [問題]用Ghost2003備份Linux
« 於: 2004-10-28 17:37 »
以下是我的作業環境

2顆硬碟,第1顆硬碟整顆硬碟都安裝一套Linux(GRUB開機程式),第2顆硬碟用SPFdisl分割為2個磁區(FAT32)
用Ghost2003執行Disk To Image並把*.gho檔存放到,第2顆硬碟的第1個磁區

並且成功備份及還原

請問我該如何取出第2顆硬碟的第1個磁區的*.gho檔呢?
還是說要將第2顆硬碟用SPFdisl分割為2個磁區(ext3)Linux檔案格式呢?

12
我知道asp能自制網頁新增修改刪除iis的設定

不知php能否做到,有無參考資料呢?

 :roll:

13
首先謝謝各位大大的熱心指導

小弟終於找到解決的方法了,以下是我的實作

代碼: [選擇]

system資料表的title欄位裡 = 本站$db_title歡迎您的光臨

<?include("config.php");?>   //連接資料庫程式
<?
$sql1 = "SELECT title FROM system";
$rs1 = mysql_query( $sql1 );
list($title)=mysql_fetch_row($rs1)
?>
<?
$sql2 = "SELECT body FROM aaa";
$rs2 = mysql_query( $sql2 );
list($body)=mysql_fetch_row($rs2)
?>
<?
$body = str_replace('$db_title',$title,$body);
echo nl2br($body);
?>


用str_replace()取代字串函數達成這樣的功能

所以在後台設定變更system資料表的title欄位(首頁標題),讓所有其他的資料表也能套用,而不需個別設定

日後遇到問題時,希望各位大大不吝指教哦

14
引述: "Darkhero"
既然你連學都不想學....
那....也沒什麼好說得了...

請自己想辦法吧.....

Darkhero大大,您別誤會,我只是問看看有沒有其他的方式能解決而已
請問template那一套才能讓新手入門,需要另外安裝嗎?
還是只要能跑php的主機就能使用template語法?

ps:php新手,請多包含

15
引述: "Darkhero"
那請問一下..你有研究過 vbb 論壇的 template 的語法嗎?...

我用過的 templatepower 也可以將 template 等存在 資料庫然後取出來用.

前提是 template 程式需要能 parer 該內容.

vbb 的作法也不是讀出來就輸出的吧.....


template的種類太多了都不知道要學那一套
那請問除了template的語法還有沒有更好的方式解決呢?

16
引述: "Darkhero"
基本上你把 "歡迎$title光臨" 放在資料庫中....

當你從資料庫讀出來後..整體就已經變成一個字串...
不會做任何處理....

建議改用 sprintf 相關的函式
你存入資料庫的資料則用
歡迎 %s 光臨

程式則用
sprintf($str,$title);


可是我看很多論壇程式的寫法都是在資料庫直接存變數進去並參雜html語法
而我又看不懂它程式的寫法~所以就想自己試看看

例如vbb論壇template資料表的其中一筆資料:
代碼: [選擇]

<html>
<head>
<title>$bbtitle 誰發表了?</title>
$headinclude
<script language="Javascript">self.focus();</script>
</head>
<body>

<table cellpadding="10" cellspacing="0" border="0" bgcolor="{pagebgcolor}" width="100%"><tr><td>
<table cellpadding="4" cellspacing="1" border="0" bgcolor="{tablebordercolor}" width="100%">
<tr>
<td colspan="2" bgcolor="{categorybackcolor}"><font color="{categoryfontcolor}">總共發表: $totalposts</font></td>
</tr>
<tr>
<td bgcolor="{tableheadbgcolor}" width="100%"><font color="{tableheadtextcolor}">會員名</font></td>
<td bgcolor="{tableheadbgcolor}"><font color="{tableheadtextcolor}">發表數</font></td>
</tr>
$posters
<tr>
<td bgcolor="{tableheadbgcolor}" colspan="2" align="center">
<a href="javascript:opener.location=('showthread.php?s=$session[sessionhash]&threadid=$threadid'); self.close();"><font color="{tableheadtextcolor}">[顯示主題 & 關閉視窗]</font></a>
</td>
</tr>
</table>
</td></tr></table>

</body>
</html>

請問這是如何辦到的呢?
想不到還真不好懂耶=.="

17
引述: "hoyo"
查查 $$ 的用法

我剛剛照hoyo大大說實做一下$$的用法

單隻程式的原始碼,印出 "本站我的首頁歡迎您的光臨"
代碼: [選擇]

<?
$aa = "我的首頁";
$$aa = "本站" . $aa . "歡迎您的光臨";
echo nl2br($$aa) . "<br>";
?>

套用在資料庫的處理,印出 "本站$title歡迎您的光臨"
代碼: [選擇]

<?include("config.php");?>   //連接資料庫程式
<?
$sql1 = "SELECT title FROM system";
$rs1 = mysql_query( $sql1 );
list($title)=mysql_fetch_row($rs1)
?>
<?
// body欄位裡的值是 = 本站$title歡迎您的光臨
$sql2 = "SELECT body FROM aaa";
$rs2 = mysql_query( $sql2 );
list($$body)=mysql_fetch_row($rs2)
?>
<?
echo nl2br($$body);
?>
請問我那裡錯了呢?

18
引述: "hoyo"
本站$title歡迎您的光臨 ???

程式寫在哪裡?


我把變數存進資料庫裡
資料表aaa的body欄位裡的值為

本站$title歡迎您的光臨

19
引述: "hoyo"
所以呢?結果出現什麼?

所以出現
本站$title歡迎您的光臨
而不是
本站我的首頁歡迎您的光臨

20
引述: "hoyo"
程式列出來吧!瞎猜沒有好下場的!

程式如下
代碼: [選擇]

<?include("config.php");?> //連接資料庫程式
<?
$sql1 = "SELECT title FROM system";
$rs1 = mysql_query( $sql1 );
list($title)=mysql_fetch_row($rs1)
?>
<?
$sql2 = "SELECT body FROM aaa";
$rs2 = mysql_query( $sql2 );
list($body)=mysql_fetch_row($rs2)
?>
<?
echo nl2br($body);
?>

21
引述: "pail"
請比較...

$name = "12345" ;
echo "Hi!  $name " ;
echo 'Hi! $name' ;

這兩者的異同!!!


我知道這2種的差異
但2種方法都試過,也是不行

22
不好意思又來請教各位高手一下

我目前想要做出來的效果是:
在後台設定變更system資料表的title欄位(首頁標題),讓所有其他的資料表也能套用,而不需個別設定

假設
system資料表的title欄位的值是"我的首頁"
aaa資料表的body欄位的型態是text
body欄位內容為
本站我的首頁歡迎您的光臨

請問當我echo $body 時,要如何讓$body裡的值所有"我的首頁"字串都能
隨著system資料表的title欄位的更改而變動

我有想過用變數處理將body欄位內容
本站我的首頁歡迎您的光臨
改成
本站$title歡迎您的光臨

但echo $body 卻印出
本站$title歡迎您的光臨

有什麼其他方式能做到這樣的效果嗎?
取代字串函數能用在這功能上面嗎?

23
引述: "craig"
引述: "868nic"

我再說明白點好了
我只要echo表單name="aa[11]"裡的"11"
name="aa[**]"也可以當做name="aa[資料表id欄位]"
用來比對資料表id欄位編號是否相同


你把
代碼: [選擇]
echo $aa[$key]."<br>";
改成
代碼: [選擇]
echo $key."<br>";
就應該是你要的了。


終於可以了,謝謝craig大大

我也找到另外一種用法
代碼: [選擇]

<?
if (isset($_POST["ok"])){
   $aa = $_POST["aa"];
   while (list($key) = each($aa)){
   echo $key . "<br>";
   }
}
?>

請問這二種用法何者效率較佳

24
引述: "craig"
引述: "868nic"
引述: "duan"

try to use foreach
foreach($array as $key => $val){
}

供您參考

你說的沒錯,但我是要取出name="aa[ ** ]"裡的值,並不是表單元件value=""裡的值
name="aa[ ** ]"裡的值,是不固定的,有可能從1到未知數,它是用來比對資料表id欄位的編號
我echo $aa[$i]印出網頁是表單元件value=""裡的值,echo $i則是陣列數量

還是謝謝您熱心的解答

你需要的不是 $key 就是 $value ,
所以 duan 應該算是有回答到你的問題才對。
我來改一下你的程式,應該會是
代碼: [選擇]

<?
if (isset($_POST["ok"])){
   $aa = $_POST["aa"];
   foreach ($aa as $key => $value){
      echo $aa[$key]."<br>";
   }
}
?>
<form method="POST" action="1.php">
<input type="text" name="aa[11]" size="35"><br>
<input type="text" name="aa[22]" size="35"><br>
<input type="text" name="aa[33]" size="35"><br>
<input type="text" name="aa[44]" size="35"><br>
<input class="clean2" type="submit" value="確定" name="ok">
</form>

我剛測了您修改的方法
結果還是echo表單<input type="text" name="aa[11]" size="35" value"">的
value=""輸入值
代碼: [選擇]

<?
if (isset($_POST["ok"])){
   $aa = $_POST["aa"];
   for ($i = 1; $i <= count($aa); $i++){
echo $aa[$i] . "<br>";
   }
}
?>

跟上面方法結果是一樣的

我再說明白點好了
我只要echo表單name="aa[11]"裡的"11"
name="aa[**]"也可以當做name="aa[資料表id欄位]"
用來比對資料表id欄位編號是否相同

或許會問為什麼不直接將表單元件用不同名稱就好阿
假設表單有4個元件
<input type="text" name="aa" size="35"><br>
<input type="text" name="bb" size="35"><br>
<input type="text" name="cc" size="35"><br>
<input type="text" name="dd" size="35"><br>
那麼我需要寫4行來接變數
$aa = $_POST["aa"];
$bb = $_POST["bb"];
$cc = $_POST["cc"];
$dd = $_POST["dd"];
那如果有幾百個表單元件呢?
那會寫到手斷掉吧

我之會這樣寫是因為參考某隻程式的寫法,但又看不懂,所以跟大家一起研究研究

25
引述: "duan"

try to use foreach
foreach($array as $key => $val){
}

供您參考

有點不懂能詳解嗎?
引述: "httang"

name=aa[]與name=aa[**]的不同,在於[]沒指明的話是從0開始存值,[**]是指定**為你所希望的名稱,至於用法都一樣吧!!希望沒誤會你意思


你說的沒錯,但我是要取出name="aa[ ** ]"裡的值,並不是表單元件value=""裡的值
name="aa[ ** ]"裡的值,是不固定的,有可能從1到未知數,它是用來比對資料表id欄位的編號
我echo $aa[$i]印出網頁是表單元件value=""裡的值,echo $i則是陣列數量

還是謝謝您熱心的解答

26
目的:將所有表單的aa[ ]裡的值取出並當做資料庫where的比較條件
接變數的語法只需一行$aa = $_POST["aa"];
代碼: [選擇]

<?
if (isset($_POST["ok"])){
$aa = $_POST["aa"];
for($i = 0; $i < count($aa); $i++){
for($x = 0; $x < count($aa[$i]); $x++){
echo $aa[$i][$x] . "<br>";
}
}
}
?>
<form method="POST" action="1.php">
<input type="text" name="aa[11]" size="35"><br>
<input type="text" name="aa[22]" size="35"><br>
<input type="text" name="aa[33]" size="35"><br>
<input type="text" name="aa[44]" size="35"><br>
<input class="clean2" type="submit" value="確定" name="ok">
</form>

name="aa[ ]" 這個用法我會
但 name="aa[ ** ]" 的用法,第一次摸索
希望有會的人指點一下吧

27
代碼: [選擇]

//分析文章自動加入超連結
$aa = preg_replace("#(http://[0-9a-z._/?=&;]+)+|(https://[0-9a-z._/?=&;]+)+|(www[0-9a-z._/?=&;]+)#i","[url]\\1\\2\\3[/url]",$aa);
$aa = preg_replace("#([0-9a-z._]+@[0-9a-z._?=]+)#i","[email]\\1[/email]",$aa);

//分析[url][/url]
$aa = preg_replace("/(\[)(url)(=)(['\"]?)(www\.)([^\"']*)(\\4)(.*)(\[\/url\])/siU","<a href=\"http://www.\\6\" target=\"_blank\">\\8</a>",$aa);
$aa = preg_replace("/(\[)(url)(=)(['\"]?)([^\"']*)(\\4])(.*)(\[\/url\])/siU","<a href=\"\\5\" target=\"_blank\">\\7</a>",$aa);
$aa = preg_replace("/(\[)(url)(])(www\.)([^\"]*)(\[\/url\])/siU","<a href=\"http://www.\\5\" target=\"_blank\">www.\\5</a>",$aa);
$aa = preg_replace("/(\[)(url)(])([^\"]*)(\[\/url\])/siU","<a href=\"\\4\" target=\"_blank\">\\4</a>",$aa);

//分析[email][/email]
$aa = preg_replace("/\[email=(.+)\](.+)\[\/email\]/iU","<a href=\"mailto:\\1\">\\2</a>",$aa);
$aa = preg_replace("/\[email\](.+)\[\/email\]/iU","<a href=\"mailto:\\1\">\\1</a>",$aa);

我目前測試結果是
代碼: [選擇]

[ EMAIL]123@123.com[/EMAIL ]
123@123.com
www.123.com
http://123.com
http://www.123.com
https://123.com
https://www.123.com
[ URL=http://123.com]123[/URL ] <==有問題
[ URL]http://123.com[/URL ]
[ URL]http://www.123.com[/URL ]

它出現的畫面是http://123.com]123
網頁原始碼是<a href="[url" target="_blank">http://123.com</a>]123


其餘都正常顯示

請問一下我還有那裡需要修改呢?
還有正規運算式"#"代表是什麼意思呢?

28
引述: "duan"
引述: "868nic"

代碼: [選擇]

<?
$aa = "<b>文字</b>";
$a2 = "test@xxx.com";
$To = "test@xxx.com";
$Subject = "測試";
$Body = "<html>\r\n<head>\r\n<title>" . $Subject . "</title>\r\n</head>\r\n<body>\r\n;
$Body = $Body . $aa;
$Body = $Body . "\r\n</body>\r\n</html>\r\n";
$Headers = "MIME-Version: 1.0\r\n";
$Headers = "Content-type: text/html; charset=big5\r\n";
$Headers = "From: " . $a2 . "\nReply-To: " . $a2;
$mailret=@mail($To, $Subject, $Body, $Headers);
?>



1. 您的 Headers 有三行, 後面的變數會蓋掉前面的, 應該是 Content-type 那行沒作用的關係.

2. 可以看信件的原始資料來比對看是那個 header 沒送到.

供您參考.  :)


原來是少 . 的關係
$Headers = "MIME-Version: 1.0\r\n";
$Headers .= "Content-type: text/html; charset=big5\r\n";
$Headers .= "From: " . $a2 . "\nReply-To: " . $a2;
謝謝你的熱心回覆

29
我已經有爬過文了~解決不了故特來請教~會的大大教一下呗

以下是我的程式碼
代碼: [選擇]

<?
$aa = "<b>文字</b>";
$a2 = "test@xxx.com";
$To = "test@xxx.com";
$Subject = "測試";
$Body = "<html>\r\n<head>\r\n<title>" . $Subject . "</title>\r\n</head>\r\n<body>\r\n;
$Body = $Body . $aa;
$Body = $Body . "\r\n</body>\r\n</html>\r\n";
$Headers = "MIME-Version: 1.0\r\n";
$Headers = "Content-type: text/html; charset=big5\r\n";
$Headers = "From: " . $a2 . "\nReply-To: " . $a2;
$mailret=@mail($To, $Subject, $Body, $Headers);
?>

Yahoo收到卻是這樣畫面
代碼: [選擇]

<html>
<head>
<title>測試</title>
</head>
<body>
<b>文字</b>
</body>
</html>

30
以下為我的步驟
1.安裝ActivePerl-5.8.0.804-MSWin32-x86.msi至C:\usr\裡
2.設定IIS,開放執行檔權與執行CGI跟pl副檔名功能
3.測試可正常執行pl檔
4.設定IIS的W3C記錄,與要求的11個相符
5.在D槽建個awstats的目錄,然後把 wwwroot裡面的cgi-bin 跟 icon 都copy在這邊
6.建立IIS虛擬目錄cgi-bin指向D:/awstats/cgi-bin 及 icon指向D:/awstats/icon
7.將awstats.model.conf解除唯讀
8.修改awstats.model.conf裡的以下三個內容
LogFile="D:/WINNT/system32/LogFiles/W3SVC1/ex%YY-0%MM-0%DD-0.log"
LogFormat=2
Lang="tw"
9.將awstats.model.conf檔copy兩份各改名為awstats.adj.conf與awstats.conf
10.建立crontab.bat檔內容如下
D:\awstats\cgi-bin\awstats.pl -config=adj -update
11.請在設定檔中 例如 awstats.adj.conf
找到 sitedomain="" 的參數 並輸入您的網站名稱
12.執行crontab.bat檔

畫面有出現~請問為何無法更新

頁: [1] 2