Pages

顯示具有 PHP 標籤的文章。 顯示所有文章
顯示具有 PHP 標籤的文章。 顯示所有文章

2015年10月13日 星期二


設定環境變數讓 Windows cmd 命令列可以執行 php 指令

轉貼自: http://asika.windspeaker.co/post/3491-win-php-cli

很多時候,當我們安裝完一些 Apache + PHP + MySQL 的整合包,他並不會幫我們設定好環境變數,一旦我們想要執行 php 指令來呼叫檔案執行,就會出現 php 不是內部或外部命令、可執行的程式或批次檔。 之類的訊息。

2014年12月23日 星期二


php貪婪與非貪婪比對

轉自
http://note.tc.edu.tw/868.html
https://disp.cc/b/11-2q1S

貪婪與非貪婪

當要抓取一段不固定的字串,例如 <b> 與 </b> 中間的字
最常看到的方法就是使用正規表示式 regular expression (以下簡稱 regex):

/<b>(.*?)<\/b>/

2014年6月23日 星期一


PHP array 排序

在這裡介紹所有PHP排序陣列的功能

sort:排序「值」,從小到大
rsort:排序「值」,從大到小
ksort:排序「Key」,從小到大
krsort:排序「Key」,從大到小
asort:排序「值」,從大到小,且保留原本的index(asort跟sort差別在sort之後會改變原本的index順序,而asort會保留原本的index)
arsort:排序「值」,從小到大,且保留原本的index

2014年4月9日 星期三


Codeigniter email 中文亂碼解決

修正Codeigniter email 中文亂碼解決

在libraries/Email.php找到function subject($subject),改成如下

class CI_Email
{
    function subject($subject)
    {
                //修正中文亂碼
$subject = '=?'. $this->charset .'?B?'. base64_encode($subject) .'?=';
$this->_set_header('Subject', $subject);
return $this;
    }
...
}

2014年3月21日 星期五


ubuntu 12.04 安裝Apache+PHP+Mysql+phpmyadmin

ubuntu 12.04 安裝Apache+PHP+Mysql+phpmyadmin

一.安裝Apache
apt-get install apache2
之後輸入網址會出現it works
sudo a2enmod rewrite #若有需要,自行開啟mod_rewrite(可用於防範Dos攻擊)
sudo a2enmod proxy_http #若有需要,自行開啟proxy_http
sudo a2enmod proxy_balancer #若有需要,自行開啟proxy_balancer
Apache設定檔:/etc/apache2/apache2.conf

2014年3月12日 星期三


CodeIgniter _remap

注意:如果你的控制器中包含一個名為_remap ( )的方法,那麼不管你的URI中包含什麼,它總會被忽略掉這個方法會廢除掉由URI。片段来决定哪个方法被调用的规则,允许你重新定义调用方法的规则(方法的路由规则)。

   但問題是,手冊上這樣說的,會有什麼用處呢其實用處有兩個? :
1 ,改變URL ,隱藏方法,比如你的應用中,原來的URL,方法是:
   http://anmsaiful.net/blog/display_successful_message
   現在想改變顯示的方法名為:
    http://anmsaiful.net/blog/successful
    但顯示雖然是成功的,但實際上是調用存在的display_successful_message

方法,這就要用到_remap方法了。

2還可以借這個函數做簡單的函數方法控制,比如:
    公共職能_remap ( $方法, $ PARAMS =陣列( ) )
{
    $ user_type = $ _SESSION [ ' user_type '] ;
    $ ACCESS_CONTROL = $這個 - > validate_access ( $ user_type , $方法) ;
    如果($ ACCESS_CONTROL ) {
        $本 - > $ ()的方法;
    }
    其他{
        $這個 - > show_message ( ) ;
    }
}

2014年3月7日 星期五


CodeIgniter HMVC 實作 REST


如果有在用 CodeIgniter 來當作 REST Server 的朋友們,我相信都會找到 philsturgeon 所寫的 codeigniter-restserver,此套件幫你完成底層 API Response 動作,讓你可以輕易處理 REST URL

PHP REST 介紹

2014年3月6日 星期四


PHP CI 各種製作 多國語系 方法

CodeIgniter 各種製作 多國語系 方法
  1. CodeIgniter有提供自訂URI的功能
    http://www.codeigniter.org.tw/user_guide/general/routing.html

    在application/config/routes.php 裡面加上下列參數
    $route['([a-zA-Z]{2})/(:any)'] = '$2';

    $2表示(:any),$1表示([a-zA-Z]{2})

    ex:
    一個「http://127.0.0.1/tw/blogs/users」URL,將重新對應到「blogs」類別以及「users」方法。

2014年2月23日 星期日


Codeigniter 2.1 HMVC 實作

轉自http://eugg.blogspot.tw/2012/11/codeigniter-21-hmvc.html

何謂HMVC?

可以直接看wiki的解釋:http://zh.wikipedia.org/wiki/HMVC
簡單解釋就是模組化。

以下實作版本是wiredesignz的5.4版
可以到官方的http://bitbucket.org下載最新的版本

而Codeigniter的版本是 2.1.0

實作
Step 1 - 解壓、複製檔案:
下載好HMVC的檔案後,直接解壓縮,裡面會有二個檔案夾:
  • core
  • third_party

2014年1月30日 星期四


file_get_contents("php://input")

本文出自 “濤石的博客” 博客,請務必保留此出處http://taoshi.blog.51cto.com/1724747/1165499

$data = file_get_contents("php://input");
    php://input 是個可以訪問請求的原始資料的唯讀流。 POST 請求的情況下,最好使用 php://input 來代替 $HTTP_RAW_POST_DATA,因為它不依賴於特定的 php.ini 指令。 而且,這樣的情況下 $HTTP_RAW_POST_DATA 預設沒有填充, 比啟動 always_populate_raw_post_data 潛在需要更少的記憶體。 enctype="multipart/form-data" 的時候 php://input 是無效的。 
    
1, php://input 可以讀取http entity body中指定長度的值,由Content-Length指定長度,不管是POST方式或者GET方法提交過來的資料。但是,一般GET方法提交資料 時,http request entity body部分都為空。 
2,php://input 與$HTTP_RAW_POST_DATA讀取的資料是一樣的,都唯讀取Content-Type不為multipart/form-data的數據。
學習筆記
 1,Coentent-Type僅在取值為application/x-www-data-urlencoded和multipart/form-data兩種情況下,PHP才會將http請求資料包中相應的資料填入全域變數$_POST 
 2,PHP不能識別的Content-Type類型的時候,會將http請求包中相應的資料填入變數$HTTP_RAW_POST_DATA 
 3, 只有Coentent-Type為multipart/form-data的時候,PHP不會將http請求資料包中的相應資料填入php://input,否則其它情況都會。填入的長度,由Coentent-Length指定。 
 4,只有Content-Type為application/x-www-data-urlencoded時,php://input資料才跟$_POST資料相一致。 
 5,php://input資料總是跟$HTTP_RAW_POST_DATA相同,但是php://input比$HTTP_RAW_POST_DATA更湊效,且不需要特殊設置php.ini 
 6,PHP會將PATH欄位的query_path部分,填入全域變數$_GET。通常情況下,GET方法提交的http請求,body為空。


$_SERVER['PATH_INFO']

PHP中的全域變數$_SERVER['PATH_INFO']是一個很有用的參數,眾多的CMS系統在美化自己的URL的時候,都用到了這個參數。

對於下面這個網址:

http://www.test.com/index.php/foo/bar.html?c=index&m=search

我們可以得到 $_SERVER['PATH_INFO'] = ‘/foo/bar.html’
而此時 $_SERVER['QUERY_STRING'] = 'c=index&m=search';

通常,我們最初開始PHP程式編寫的時候,都會使用諸如: http://www.test.com/index.php?c=search&m=main 這樣的URL,這種URL不僅看起來非常奇怪,而且對於搜尋引擎也是非常不友好的。很多搜尋引擎收錄的時候,都會忽略Query String之後的內容,google雖然不會忽略Query String,但是對於其他不含Query String的頁面,會給于比較高的PR值。

<?php
    echo $_SERVER['REQUEST_URI']
?>
本地測試地址:http://localhost/a.php 得到結果:/a.php
測試地址二:http://localhost/a.php?id=123 得到結果:/a.php?id=123
測試地址三:http://localhost/a.php/123.html 得到結果:/a.php/123.html
即$_SERVER['REQUEST_URI']基本得到的是位址中/後的所有內容
將a.php代碼改為如下:

<?php
    echo $_SERVER['PATH_INFO']
?>
本地測試地址:http://localhost/a.php 得不到任何結果,很鬱悶,不懂什麼意思;
測試地址二:http://localhost/a.php?id=123 同樣得不到任何結果,更鬱悶,因為不懂,所以確實不曉得這個函數什麼意思,感覺挺不舒服的。正當準備放棄繼續baidu時,無意中做了下面的測試,挺幸運
測試地址三:http://localhost/a.php/123.html 得到結果/123.html再在後面加東西,
測試地址四:http://localhost/a.php/123.html?id=2222 結果為:/123.html
什麼意思自己看就應該明白了。是不是還有我沒測試到的作用,不得而知了。希望對各位有用。


本文轉自
http://hi.baidu.com/flyrat/item/44623a365c656ff42784f496

2012年12月3日 星期一


PHP正規表示法,驗證Email格式

PHP正規表示法,驗證Email格式

相信很多人都會用正規表示法來驗證字串吧!
但你了解那些正規表示法的意思嗎?
網路上有人整理出一些基本格式,就來和大家分享一下
怎麼驗證user輸入的字串,符可自已想要的格式。

preg_match('/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/', $email) 
// 正確: true, 錯誤: false

文章轉自[PHP] [其他] 無痛學習【正規表示法(Regular expressions)】

雖然PHP提供很多函式可以應用在表單資料格式的驗證上,但是,最方便的還是使用【正規表示法】去驗證資料格式(註:正規表示法有很多種格式,PHP使用的是POSIX),在此介紹一些最基本的用法...

PHP使用正規表示法進行驗證,需搭配preg_match()之類的函式來使用,例如:preg_match("/(正規條件字串)/","(欲驗證字串)"),如果欲驗證字串符合正規條件字串,則回傳true,反之回傳false。

基本用法:
preg_match("/b/","abcd");---true
preg_match("/b/","ABCD");---false
preg_match("/bc/","abcd");---true
preg_match("/bc/","abxxxcd");---false
preg_match("/abcd/","b");---false

2012年11月13日 星期二


PHP錯誤抑制符號


[PHP]PHP錯誤抑制 @ (小老鼠) 的用法
在連SQL或其他可能會出現錯誤訊息的動作
只要在前面加上@就可以抑制錯誤訊息
但並不表示就沒有錯誤,只是不讓使用者發現有錯誤而已

2012年11月8日 星期四


PHP 比較include、include_once、require、require_once的差別


PHP 比較include、include_once、require、require_once的差別

include 和 include_once
都是用來引入檔案,後者可避免重複引入,故建議用後者。引不到檔案會出現錯誤息,但程式不會停止

require 和 require_once
都是用來引入檔案,後者可避免重複引入,故建議用後者。引不到檔案會出現錯誤息,而且程式會停止執行