PHP 編程一些及其細微的細節問題

來源:互聯網
上載者:User

    /////////////////
    Windows下,記事本會把“utf-8 編碼,無 bom”的檔案變成“帶bom”,也就是給檔案前加三個位元組“EF BB BF”。因為好像記事本只能儲存“帶bom”的 UTF-8 的檔案。切記!
    經常會出現在:用記事本修改 PHP 的 config.inc.php 設定檔的時候。這時,因為config.inc.php一般包含在PHP檔案的頭部,所以 PHP 檔案如果涉及 session 或 header() 函數,麻煩就來了。因為 session 或 header()之前不允許有 html 指令碼,包括 echo 輸出,而“EF BB BF”字串雖然人眼不可見,但是 PHP 把它們當做 html 字元了。

    /////////////////
    UltraEdit 編輯器,能自動識別編輯的字串是英文(單位元組編碼),還是中文(多位元組編碼)。而且 UltraEdit 編輯器以不定長編碼儲存文本。
    比如,編輯的文本全部是英文,即使強制儲存為 UTF-8,在 Windows 下也會自動儲存為普通 DOS 格式的單位元組文字檔。這時輸入漢字,漢字還是雙位元組編碼。
    只有再次另存新檔 UTF-8編碼,漢字才會變為 UTF-8 的三位元組編碼。而英文一直都會是單位元組編碼。這個通過 UE 的二進位編輯形式看的很清楚。

    //////////////////
    <base target="_self" /> 是網頁預設的配置,要是改為
    <base target="_blank" />,會直接作用於<a>...</a>,而且會影響連結代碼裡的 onclick="" 函數。

    //////////////////
    非常奇怪的問題:

    function $F(id)
    {
      return document.getElementById(id);
    }

    $F(id) 是取 input 的 id 值的,在本地apache伺服器上可以取 name 或 id 的值。
    但是,代碼上傳到遠程伺服器上後,只能取 id 的值。(同一個瀏覽器!)

    本機伺服器和遠程伺服器有差別??

    //////////////////////////////
    MySQL 的 MyISAM 引擎的資料庫,冷恢複後,如果有異常,應該把 MySQL 服務重新啟動一下。
    所以,MySQL 的離線備份、恢複,最好在 MySQL 服務關閉後操作。

    //////////////////////////////
    地址裡帶參數,特別如果是漢字,需要  ?c=urlencode(...),然後 urldecode($_GET['c'])
    注意:UTF-8編碼,在 IIS 下可以,在 Windows+apache下不行??
    還和IE的設定有關:(IE8)進階--發送UTF-8 URL。

    //////////////////////////////
    session[] 在後端用 ajax 調用產生時,如果立即調用session,可能會因為沒有被產生:沒有產生會話檔案,而調用失敗。

    //////////////////////////////
    語句 header("Location:xxx.php"); 轉向之後,應該還需要執行 exit 語句。
    否則,還會執行到本頁尾部(雖然眼睛看不到)。即:
    header("Location:xxx.php");
    exit;

    //////////////////////////////
    同一個網站裡,不要讓網頁重名。否則會因為在瀏覽器端有緩衝,而錯亂。 IE 和 chorom 瀏覽器都出現過該問題。

    //////////////////////////////
    smarty 模版檔案不能重名。否則會因為smarty在服務端有緩衝,而導致錯亂。

    ////////////////////////////////////
    一個串連的 href="javascript:hanshu();"  和 jQuery 的click事件,有時可以同時被觸發,但有時只觸發一個事件,不穩定。
    所以,不要在一個連結裡同時使用 js 函數和 jQuery 點擊事件!

    /////////////////////////////////
    <select name="newgroupid">
      <optgroup label="會員使用者組">
        <option value="10" selected>新手上路</option>
      </optgroup>
      <optgroup label="自訂使用者組">
        <option value="20">QQ遊客</option>
      </optgroup>
      <optgroup label="自訂管理組">
        <option value="16">實習版主</option>
        <option value="17">網站編輯</option>
        <option value="19">審核員</option>
      </optgroup><optgroup label="系統使用者組"><option value="2">超級版主</option>
      <option value="3">版主</option>
      <option value="4">禁止發言</option>
      <option value="8">等待驗證會員</option>
    </optgroup></select>

    /////////////////////////////////////////////////
    MySQL字串型欄位長度和漢字個數:
    UTF8編碼的欄位,欄位長度和儲存的漢字個數相同。比如欄位長度為6,就能儲存6個漢字,而不是3個。

    張慶(網眼) ,微博:http://t.qq.com/zhangking
    來自“網眼視界”:http://blog.why100000.com
    “十萬個為什麼”電腦學習網:http://www.why100000.com
     2013-2-6

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.