這是我的UserAgent:地帶用戶代理PHP
的Mozilla/5.0(的PlayStation 4 4.73)爲AppleWebKit/536.26(KHTML,例如 壁虎)
我想上述轉換爲該:
的PlayStation 4 4.73
我已經嘗試了一些東西,如用substr剝離useragent,但那並沒有解決 - 嗯,但它確實很慢,看起來並不專業。
什麼是PHP中最好,最小和最快的方式來實現這個結果?
這是我的UserAgent:地帶用戶代理PHP
的Mozilla/5.0(的PlayStation 4 4.73)爲AppleWebKit/536.26(KHTML,例如 壁虎)
我想上述轉換爲該:
的PlayStation 4 4.73
我已經嘗試了一些東西,如用substr剝離useragent,但那並沒有解決 - 嗯,但它確實很慢,看起來並不專業。
什麼是PHP中最好,最小和最快的方式來實現這個結果?
如果你只是想「無論是在第一對()括號」 ......
$str = 'Mozilla/5.0 (PlayStation 4 4.73) AppleWebKit/536.26 (KHTML, like Gecko)';
$str = substr($str,strpos($str,'(')+1); // remove the first (and everything before it
$str = substr($str,0,strpos($str,')')); // remove the first) and everything after it
echo $str;
如果你想更復雜的分析...(如果沒有括號,或者只有一個如果你想抓住的字符串有(或)?如果你想要第一個括號中的內容,而不是第一個?),那麼你將不得不做一些事情,呃編程...
這裏有幾種方法:
// smallest:
$comment = preg_split('/[()]/', $userAgent)[1];
// fastest:
$start = strpos($userAgent, '(') + 1;
$comment = substr($userAgent, $start, strpos($userAgent, ')') - $start));
您使用了哪些代碼? – Andreas
您需要首先定義所需字符串的規則。它是否找到了第一個括號?你想從這個UA字符串中得到什麼:'Mozilla/5.0(Macintosh; Intel Mac OS X 10_9_5)AppleWebKit/537.36(KHTML,像Gecko)Chrome/59.0.3071.115 Safari/537.36'? –
括號中的區域被稱爲評論。考慮到用戶代理的格式,你可以做'preg_split('/ [()] /',$ userAgent)[1]'。但用戶代理中的註釋沒有定義的結構。 – cmbuckley