PHP

  • MySQL一般情況下都是在主機上,使用root帳號密碼localhost做連結,如您使用root去遠端連結可能會出現"Host xxx is not allowed to connect to this MySQL server"這樣的錯誤訊息。需要遠端如IP去連結MySQL,你的主機開起防火牆MySQL預設3306 Port,還有一組不屬於localhost端的帳號,預設root只能在localhost做連結。

    以下圖中,在phpmyadmin設定一組帳號密碼,做為可以遠端連線的帳號,主機選擇"任意主機"%,全域權限全選。

  • JFactory::getLanguage()

    使用下列語句可以知道目前你的Joomla網站的語系。

    Example 1

    下面的代碼獲取當前語言的名稱。

    <?php
        $lang = JFactory::getLanguage();
        echo 'Current language is: ' . $lang->getName();
    ?>

    Example 2

    下面的代碼判斷當前語言。

    <?php
        $lang = JFactory::getLanguage();
        $result = $lang->getTag();
        If($result == "en-GB"){
            echo 'is EN ';
        }else{
            echo 'Not is EN ';
        } 
    ?>

    如此就可以做出許多判斷,需要做客製布景時,讓某些東西在特定的語系出現,就可以這樣判斷。

  • 如果你有一個Gmail帳戶,你可以使用Gmail作為您的郵件服務器

    在郵件設定選項卡中進行以下設置:

    郵件:SMTP

    Sendmail 路徑:/usr/sbin/sendmail
    SMTP身份驗證:是
    SMTP安全:SSL
    SMTP端口:465
    SMTP用戶名:您的Gmail用戶名 如:Email住址會使用灌水程式保護機制。你需要啟動Javascript才能觀看它
    SMTP密碼:您的Gmail密碼
    SMTP主機:smtp.gmail.com

  • 反轉原陣列順序

    $a=array(‘a’,’1′,’2′,’b’);
    print_r(array_reverse($a));

    顯示結果:
    Array ( [0] => b [1] => 2 [2] => 1 [3] => a )

  • PHP strtotime() 函數

    將英文文本日期時間解析為Unix 時間戳:

    <?php
        echo(strtotime("now")); //現在時間
        echo(strtotime("3 October 2005")); //2015-10-03
        echo(strtotime("+5 hours")); //現在時間+5小時
        echo(strtotime("+1 week")); //現在時間+1星期
        echo(strtotime("+1 week 3 days 7 hours 5 seconds")); //現在時間 +1星期3天7小時5秒
        echo(strtotime("next Monday")); //下個星期的星期一
        echo(strtotime("last Sunday")); //上個星期的星期天
        //輸出
        //1530144600
        //1473004800
        //1530162600
        //1530749400
        //1531033805
        //1530460800
        //1529769600
    ?>
  • 使用substr()含數

    array_unique移除陣列中重複的值

    需要使用小數奌做判斷時,我們只需要使用substr()含數,抓取小數點。

  • 這邊使用的是Windows主機安裝Xampp架設的Web Server環境,然而在其他的系統沒有嘗試使用過。

    php sqlsrv安裝

    1. 首先安裝好xampp。這邊使用的版本為PHP 5.6.15。若想知道自己的php版本可以使用以下php函數方式查看。

      <?php
          phpinfo();
      ?>

  • PHP IntelliSense是一個能夠提供快速完成PHP代碼及查找關聯、精確錯誤報告的智能感知PHP擴展。在使用VScode安裝PHP IntelliSense開發PHP需要先安裝PHP7才能使用,也就是說需要有架設好的PHP環境。

    Visual Studio Code + XAMPP

    這邊選擇最快速架設一個WebServer,使用XAMPP(Apache + PHP + Mysql等等...),提醒要裝PHP7的版本。

    XAMPP安裝完成後,開啟XAMPP Control Panel,Apache的actions欄位下按鈕按下start,如下圖。

    XAMPP Control Panel

  • Git是許多程序員使用的分佈式版本控制系統。cPanel工具提供了一個方便的圖形界面Git version control tool,允許在不使用命令行的情況下訪問Git功能。它可用於安裝和更新存儲在Git存儲庫中的Web站點,本文介紹如何使用簡單的“Hello World!”執行安裝。例如可以使用相同的步驟來安裝任何大小的應用程序。在此示例中,開發人員創建了一個Web頁面並將其放在Github上的存儲庫中。

  • 啟用Joomla cache緩存快取同時並禁用了匹配點擊數(hits)

    Joomla中啟用緩存,在提供緩存快取頁面時,文章匹配點擊數不會增加。不幸的是,這是Joomla中緩存快取系統的限制,沒有"切換開關"來啟用此功能。

  • 在views/temp目錄下創建當php檔案如下分別鍵入html與Javascript jQuery Ajax部分。

    建立views頁面

    <?php
        <form action="<?php echo JUri::getInstance(); ?>" id="adminForm" name="adminForm" enctype="multipart/form-data" method="post">
    
          <input name='user' placeholder='user'><br>
          <input name='password' type='password' placeholder='password'><br>
          <input type="file" name="file"/>
          <button type='submit'>Try</button>
    
        </form>
        <script>
            (function($)
            {
                $('button').click(function(e){
                    e.preventDefault();
                    var form = $('form')[0];
                    var formData = new FormData(form);
                    $.ajax({
                        url:'index.php?option=com_hrsystem&view=training&layout=upload&format=json',
                        type : "POST",
                        data : formData,
                        contentType: false,
                        cache: false,
                        processData: false,
                        success : function(data) 
                        {
                             console.log(data);
    
                        },error: function(data) 
                        {
                            console.log('無法送出');
                        }
                    })
    
                });
            })(jQuery);
        </script>
    ?>
  • 只能輸入1個數字 
    表達式 ^/d$
    描述 匹配一個數字
    匹配的例子 0,1,2,3
    不匹配的例子  
  • 你可以隨時使用new stdClass()。示例代碼:

    $object = new stdClass();
    $object->property = 'Here we go';
    
    var_dump($object);
    /*
    outputs:
    
    object(stdClass)#2 (1) {
    ["property"]=>
    string(10) "Here we go"
    }
    */

    同樣從PHP 5.4開始,你可以得到相同的輸出:

    $object = (object) ['property' => 'Here we go'];

    PHP 5.4方法,這使得代碼更短,更具可讀性,特別是當你有幾個項目添加到對象。

  • 在本教程中,我們將製作一個多文件上載PHP腳本,其中包含文件擴展名和大小的驗證,以進行安全上載並將文件信息保存到MySQL數據庫中。 在本教程中,我們將製作一個圖像上傳系統。這可用於上傳圖像,PDF,文檔,日誌或任何文件類型,確保您在腳本中進行更改。 如果您對文件上傳不熟悉,可以查看我們關於使用PHP進行簡單文件上傳的文章,以便開始使用基本知識。

    HTML

    這是一個簡單的HTML論壇,不會有任何樣式,因為我們專注於PHP上傳。

    <form action="" method="POST" enctype="multipart/form-data">
        <input type="file" name="files[]" multiple="" />
        <input type="submit"/>
    </form>
  • XAMPP修改MySQL密碼與PhpMyAdmin設定

    當我們安裝好 XAMPP 以後,我們還需要針對 MySQL 跟 phpMyAdmin 進行一些修改,首先我們點擊控制台的 admin 開啟 phpMyAdmin

    點擊後你會發現會直接進入 phpMyAdmin 並不需要輸入帳號密碼這是相當危險的,如果你只是要本機進行練習的話並沒有什麼關係,但是如果有要對外那就絕對不行了,因此需要修改一下 root 的密碼。

  • .bat檔去執行PHP程式

    PHP通常架設在伺服器上運行的,主要是有使用者請求才會動作,但有些時候想將寫好的PHP程式,能夠自己在一定的時間內,自動執行去處理一些事情。然而要讓PHP程式能夠自動執行,首先準備一個要自動執行的php程式檔如b.php,之後在同個目錄下建立一個bat檔,這邊命名為b.bat,內容如下。

    b.php

    C:\AppServ\php\php.exe -f c:\Appserv\test\b.php > b.txt

    b.bat程式碼主要是利用php.exe去執行b.php檔案。

    C:\AppServ\php\php.exe 是你安裝php的位址(記得改成自己安裝的資料夾位置)
    c:\Appserv\test\b.php > b.txtb.php 結果寫到 b.txt 去(這等於是一個log檔案,可用來檢視執行結果與可輸出檢查錯誤產生的訊息)

  • 以下有兩種方法分別為mysqli_query與mysql_query連結資料庫的方式,然後使用json_encode()將資料庫轉為json資料格式呈現在網頁上。

    MySQL json_encode()中文字空白頁面、問號符號、亂碼

    主要嘗試抓取mysql資料碰到的大問題就是中文資料問題,一開始抓取資料,我使用的是自行用架設的XAMPP Server做測試,結果抓取資料時我一次SELECT * 所有的欄位,然後json_edcode(),結果頁面完全沒有任何的東西,空白頁面,測試之後SELECT 其中欄位,只有數值或英文的表單欄位,正常顯示。結果SELECT有中文欄位資料,就發現是空白頁面,大致上可以了解是中文json_encode()時無法出現。