Twitter Search api以ATOM / XML格式返回结果,如下所示:
<author>
<name>username (Friendly Name)</name>
<uri>http://twitter.com/username</uri>
</author>
在我的PHP中,我可以将名称字段作为变量,因此它看起来像这样:
$names = "username (Friendly Name)"
但是我想用PHP将它们作为单独的变量提取出来,如下所示:
$username = "username"
$friendlyName = "Friendly Name" (without parantheses)
TIA!
答案 0 :(得分:3)
非正则表达式解决方案:
$names = 'username (Friendly Name)';
list($username, $friendlyName) = explode('(', $names);
$username = trim($username);
$friendlyName = trim($friendlyName, ')');
假设括号在任一名称中都无效。
答案 1 :(得分:1)
我认为应该这样做:
$names = "username (Friendly Name)";
if (preg_match('/^(.*?) \((.*)\)$/', $names, $m)) {
var_dump($m[1], $m[2]);
}
在这种情况下,你得到了:
string 'username' (length=8)
string 'Friendly Name' (length=13)
(请注意“string
”,“length
”以及所有只是var_dump
的输出,而不是实际的变量内容)
基本上,正则表达式是匹配的:
()
()
之间;这意味着他们将在$m[1]
和$m[2]