剥离用户代理PHP

时间:2017-08-10 20:38:52

标签: php

这是我的使用者:

  

Mozilla / 5.0(PlayStation 4 4.73)AppleWebKit / 536.26(KHTML,喜欢   壁虎)

我想将上述内容转换为:

  

PlayStation 4 4.73

我尝试了一些事情,例如剥夺了使用者的使用权,但这并没有成功 - 但是,确实如此,但它很慢,看起来并不专业。

什么是PHP中最好,最小,最快的方法来实现这一结果?

2 个答案:

答案 0 :(得分:0)

如果你只想要“第一对()括号中的任何内容”......

$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;

如果你想要更复杂的解析......(如果没有括号或只有一个开/关括号怎么办?如果要抓取的字符串中有一个(或),该怎么办 ?如果你想要 2nd 括号的内容,而不是第一个?的内容怎么办?)那么你将不得不做一些,呃,编程......

答案 1 :(得分:0)

以下是两种方法:

// smallest:
$comment = preg_split('/[()]/', $userAgent)[1];

// fastest:
$start = strpos($userAgent, '(') + 1;
$comment = substr($userAgent, $start, strpos($userAgent, ')') - $start));