1.
在 Windows 中怎樣處理 bz2 壓縮的文件?
若果沒有能處理 bz2 檔案的壓縮工具,從 Redhat
下載一個指令行工具(進一步訊息見下面)。
若果不喜歡用指令行工具,可以試試免費工具例如 Stuffit Expander,UltimateZip,7-Zip 或是 Quick Zip。若果有像 WinRAR 或是 Power Archiver
之類的工具,可以很容易用它解壓縮 bz2 檔案。若果用
Total Commander(前身為 Windows Commander),可以從
Total Commander 網站免費得到一個 bz2 外掛程式。
來自 Redhat 的 bzip2 指令行工具:
Win2K Sp2 會員下載最新版本 1.0.2,所有其它 Windows 會員應該用版本 1.00。下載後更名可執行檔案為
bzip2.exe。為方便起見將其放到一個在你路徑中的目錄,例如 C:\Windows,C 表示你安裝 Windows 的盤符。
注意:lang 指的是你的語種,x 是想要的格式,例如:pdf。要解壓縮
php_manual_lang.x.bz2,按照下面的簡單說明進行:
在下載了包括很多 html 檔案的 php_manual_lang.tar.bz2 的情況下,過程是一樣的。唯一區別是得到了一個
php_manual_lang.tar 檔案。tar 格式可以被大多數 Windows 下流行的壓縮工具所處理,例如 WinZip。
2.
在函數定義中,參數旁邊的 & 是什麼意思?例如
asort()。
這表示該參數是引用傳遞,該函數會修改其值。只可以用此方法傳遞變量,其實都不需要在函數呼叫中用
& 傳遞(此模式都已過時了)。
3.
怎麼處理 register_globals?
有關 register_globals
實現方面的安全性,請閱讀使用 register_globals
一章。
推薦使用超全局變量而不要依賴
register_globals。
若果需要在一台關閉了 register_globals
的共享主電腦上運行一些舊式程式而該程式需要此選項開啟時,或是在一些開啟了此選項的主電腦上但想消除安全隱患,那麼就需要用
PHP 來模擬出相反的設定。最好先問清楚是否能否在哪裡變更
PHP 配置的選項,若果不行,那可以用如下的相容手段。
例子 61-1. 模擬註冊全局變量
本例模擬 register_globals On。
<?php // Emulate register_globals on if (!ini_get('register_globals')) { $superglobals = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET); if (isset($_SESSION)) { array_unshift($superglobals, $_SESSION); } foreach ($superglobals as $superglobal) { extract($superglobal, EXTR_SKIP); } } ?>
|
本例模擬 register_globals Off。要記住此代碼應在腳本最開頭的地方呼叫。
<?php // Emulate register_globals off function unregister_GLOBALS() { if (!ini_get('register_globals')) { return; }
// Might want to change this perhaps to a nicer error if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) { die('GLOBALS overwrite attempt detected'); }
// Variables that shouldn't be unset $noUnset = array('GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES');
$input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());
foreach ($input as $k => $v) { if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) { unset($GLOBALS[$k]); } } }
unregister_GLOBALS();
?>
|
|