iT邦幫忙

0

php 如何找出某段值然後印出?

php

我有使用過preg_match去找某段字若有xxx則我就顯示為xxx
這是我決定的 只要字串符合
但我現在想知道的是
如何印出某一段字串?
因為該字串會變動 我想把它印出
我是用PHP的HTTP USER AGENT探測裝置的資料的

假設這一段

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36

我要印出 Mac OS X 10_10_5 這段 且顯示為 Mac OS X 10.10.5

以及

Mozilla/5.0 (Linux; Android 4.4.2; ASUS_T00G Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36

我要印出 Android 4.4.2 還有 ASUS_T00G

和最後的

Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53

除了要印出 iPhone以外我還要印出 OS 7_1_2並顯示成 OS 7.1.2
這要如何偵測呢?
我會判斷假設字串中有Intel Mac OS X則顯示Apple MAC
有Android則顯示Android
有iPhone則顯示iPhone
有ipad 則顯示ipad這沒問題.....
但是我要印出以上我描述的那些字串 這該怎麼判斷呢?

weiclin iT邦高手 4 級 ‧ 2016-09-20 16:53:08 檢舉
與其自己寫這個, 我建議你從現有的一大堆相同功能的套件挑一個用: https://github.com/ThaDafinser/UserAgentParser
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
wonton
iT邦高手 6 級 ‧ 2016-09-21 09:07:17
最佳解答

研究一下 strpos、substr、explode、str_replace 等函數。簡單來說:

  1. 使用 strpos 找出 ( 和 ) 的位置,透過 substr 先把括號內的字串取出來
  2. 用 explode 將字串用 ; 分隔成 array
  3. 依據各種 case 處理 array 內的字串,使用 strpos、substr、str_replace 等等函數交互應用處理要的資料
火爆浪子 iT邦研究生 1 級 ‧ 2016-09-21 15:16:06 檢舉

請問...第三點我就沒有頭緒了 哈哈/images/emoticon/emoticon06.gif

火爆浪子 iT邦研究生 1 級 ‧ 2016-09-21 15:53:29 檢舉

我現在已經能找出()內的字串了

我要發表回答

立即登入回答