轉貼自: http://asika.windspeaker.co/post/3491-win-php-cli
很多時候,當我們安裝完一些 Apache + PHP + MySQL 的整合包,他並不會幫我們設定好環境變數,一旦我們想要執行 php 指令來呼叫檔案執行,就會出現 php 不是內部或外部命令、可執行的程式或批次檔。 之類的訊息。
2015年10月13日 星期二
2014年12月23日 星期二
php貪婪與非貪婪比對
轉自
http://note.tc.edu.tw/868.html
https://disp.cc/b/11-2q1S
貪婪與非貪婪
當要抓取一段不固定的字串,例如 <b> 與 </b> 中間的字
最常看到的方法就是使用正規表示式 regular expression (以下簡稱 regex):
/<b>(.*?)<\/b>/
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
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
一.安裝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 ( ) ;
}
}
但問題是,手冊上這樣說的,會有什麼用處呢其實用處有兩個? :
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 各種製作 多國語系 方法
- 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的檔案後,直接解壓縮,裡面會有二個檔案夾:
可以直接看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");
$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
對於下面這個網址:
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月9日 星期日
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
相信很多人都會用正規表示法來驗證字串吧!
但你了解那些正規表示法的意思嗎?
網路上有人整理出一些基本格式,就來和大家分享一下
怎麼驗證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日 星期二
2012年11月8日 星期四
PHP 比較include、include_once、require、require_once的差別
PHP 比較include、include_once、require、require_once的差別
include 和 include_once
都是用來引入檔案,後者可避免重複引入,故建議用後者。引不到檔案會出現錯誤息,但程式不會停止。
require 和 require_once
都是用來引入檔案,後者可避免重複引入,故建議用後者。引不到檔案會出現錯誤息,而且程式會停止執行。
訂閱:
文章 (Atom)
,is_null(),isset%E7%89%B9%E6%AE%8A%E5%88%A4%E6%96%B7%E7%B5%90%E6%9E%9C%E5%88%97%E8%A1%A8.jpg)