外部連結失效了,而且反斜線 "\" 大多數時候是用作「跳脫字元」。總之,謝謝。
(PECL wincache >= 1.1.0)
wincache_lock — 取得指定鍵值的獨佔鎖
取得指定鍵值的獨佔鎖定。目前的腳本執行將會被阻擋,直到取得鎖定為止。一旦取得鎖定,其他嘗試使用相同鍵值請求鎖定的腳本將會被阻擋,直到目前的腳本使用 wincache_unlock() 釋放鎖定。
在像 FastCGI 這樣的多程序環境中執行 PHP 腳本時,使用 wincache_lock() 和 wincache_unlock() 可能會造成死鎖。除非您完全確定需要使用這些函式,否則請勿使用它們。對於大多數使用者快取的操作,並不需要使用這些函式。
key
快取中要鎖定的鍵值名稱。
isglobal
控制鎖定的範圍是系統範圍還是區域範圍。區域鎖定的範圍在 IIS FastCGI 的情況下限定於應用程式集區,或者限定於所有具有相同父行程識別碼的 php 行程。
範例 #1 使用 wincache_lock()
<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock(“lock_txt_lock”)) { // 進行獨佔鎖定
ftruncate($fp, 0); // 清空檔案
fwrite($fp, "Write something here\n");
wincache_unlock(“lock_txt_lock”); // 釋放鎖定
} else {
echo "無法取得鎖定!";
}
fclose($fp);
?>
使用者應注意,字元 '\' 不允許作為鎖定名稱的一部分。不允許使用反斜線的原因是因為我們使用 CreateMutex 呼叫,如 http://msdn.microsoft.com/en-us/library/ms682411(VS.85).aspx 中所述。根據這篇文章,第三個參數(鎖定名稱)不能包含 '\' 字元。
這表示以下程式碼將無法運作。
<?php
$ret_val = wincache_lock("C:\WINDOWS\Temp/cache");
echo $ret_val . '<br>';
$ret_val = wincache_unlock("C:\WINDOWS\Temp/cache");
echo $ret_val . '<br>';
?>