分類:網站技術

[PHP] substr 字串擷取 (擷取字串中指定位置、長度的部分)

substr()

在一段字串中,擷取指定的位置以及指定的長度。


使用方式:

substr ( 字串, 起始位置, 長度 )

字串:在第一個值為輸入一個原始的字串。

起始位置:設定要開始擷取的位置,也就是從頭開始計算第幾位數。

長度:要擷取多少的長度

起始位置 與 長度 必須要是整數值,其中長度可以是正數或是負數,如果設定為負數則代表說擷取至該字串的倒數第幾個位數。

 

當只有設定 起始位置 且沒有設定 長度 時,會擷取該位置以後的所有字串,例如:

$text = "RicharLin";
echo substr($text, 3); //輸出 harLin
echo substr($text, -3); //輸出 Lin   (由倒數第三位數開始擷取)

 

當 起始位置 與 長度 都有設定時,若長度為負數則代表長度擷取到字串結束前第n位,例如:

$text = "RicharLin";
echo substr($text, 0); //輸出 RicharLin
echo substr($text, 0, 6); //輸出 Richar
echo substr($text, 0, -3); //輸出 Richar
echo substr($text, 4); //輸出 arLin
echo substr($text, 4, 2); //輸出 ar  (由第四位起,擷取兩位數)
echo substr($text, 4, -3); //輸出 ar (由第四位起,擷取至字串結尾前三位數)
echo substr($text, -7); //輸出 charLin (由倒數第七位起擷取全部)
echo substr($text, -7, 4); //輸出 char (由倒數第七位起擷取四位數)
echo substr($text, -7, -3); //輸出 char (由倒數第七位起擷取至倒數第三位);

實際使用範例:

情境:多筆資訊必須存在同一個字串之中。
例如:「座號_性別」

$Array_Data = array("001_F","002_F","003_M","004_M","005_F");

for($i=0;$i<count($Array_Data);$i++){
  $number = substr($Array_Data[$i], 0, 3);
  $gender = substr($Array_Data[$i], -1);
  echo "座號:".$number." / 性別:".$gender." <BR>";
}

輸出結果為:

座號:001 / 性別:F 
座號:002 / 性別:F 
座號:003 / 性別:M 
座號:004 / 性別:M 
座號:005 / 性別:F

 

[網域] 免費DNS代管服務 FreeDNS.afraid.org

前言:

如果你申請了一個網域,但是它沒有提供好用的DNS可以供你設定網域的時候,

你就會需要一個有完整功能的DNS代管服務,才可以讓你的網域發揮更多用途,

而今天就要來推薦一個老牌且免費的DNS代管服務 FreeDNS.afraid.org !


官方網站:https://freedns.afraid.org/


註冊帳號:

第一步:

首先我們先連結到「首頁」,並將畫面拉到最下面找到 「Sign Up!」註冊一個帳號!

接下來我們會看到一個規格表,我們就選用最左邊的Basic方案,這就非常足夠我們使用囉~

 

第二步:

當我們選擇好方案後,這裡分別要填入「姓氏、名字、ID、密碼、確認密碼、Email、驗證碼」

並且在最下面勾選同意他們的條款,點擊「Send activation email」後,

到信箱收取驗證信後你的帳號就註冊完成啦~

 


新增一個網域至FreeDNS:

接下來我們就要使用上它的DNS代管服務,我們在左邊的選單選擇「Domains」

接著我們要點選「Add A Domain into FreeDNS」來把我們的網域新增到FreeDNS的服務之中!

 

接著我們要在「Domain」中填入你的網域 ,
(如果你剛註冊好一個.tk的網域,那麼就在這裡填入它吧!請注意這裡不要填入www哦)

並且在「Shared State」的位置選擇「Shared: Private」

點擊「Submit」後就可以了,這時候我們再點選左邊選單的「Domains」回到列表中,

我們就會看到網域已經被登入了,但是看到紅色的字表示目前還不能使用中!

接下來下個步驟我們就要去你註冊網域的網域商那邊,

把DNS主機設定為FreeDns.afraid.org所提供的網址位置!

快則幾分鐘慢則幾個小時後,再回來這邊看就會看到紅色的Broken消失了,

那就代表你的網域已經成功被指向過來FreeDNS的伺服器囉!


NS1.AFRAID.ORG
NS2.AFRAID.ORG
NS3.AFRAID.ORG
NS4.AFRAID.ORG


☆如果你是申請了一個.tk的網域,那麼請回到那篇教學文章的最後面,在「Nameservers」的欄位中填入以上四個網址並儲存,快的話大概幾分鐘後你再回來FreeDNS的頁面看,那行紅色的字就會消失了,消失後就代表你的網域已經成功被指向來FreeDNS這邊了!

 


 

設定網址的指向:

當我們要設定網域的時候,我們一樣點選左邊選單的 「Domains」,

接著找到你要管理的網域並點選後面的「Manage」,

你就會看到這個網域目前所含有的所有子網域了!

在尚未設定的時候系統會預設幫你設定六組子網域,但是都尚未指定位置,

 

這邊我們至少要先把無子網域的網域先指定好網址,只要點擊它並且在裡面設定,

如果是要把這個網址對應到主機的IP,那麼Type的部分就維持「A」即可,

接著在「Destination」的位置填入主機的IP位置,並點擊「Save!」就可以了

那麼如果你想要新增一個子網域例如 blog.richarlin.tk 的話,

就在上面子網域的列表中點選 「Add」,並且在「Subdomain」的位置填上「blog」,

而「Destination」的位置一樣填上主機的IP位置就可以囉!

(如果是自己架設的主機,那麼也必須要在主機的設定中去設定子網域才會有效果哦!)

 

 

 

[PHP][MySQL] fetch_array與fetch_assoc與fetch_row的比較

正常情況下我們用PHP再擷取MySQL的資料時,我們都習慣會使用 fetch_array() 來把資料從資料表中讀出,而這個功能會把資料存入陣列之中,而陣列中的Key值將會以數列與實際Key值來儲存。

但有些時候我們希望陣列不要重複取得資料,或者是我們希望他單純以數值命名……………..

繼續閱讀