【问题标题】:How to extract Twitter username from Search API via PHP如何通过 PHP 从 Search API 中提取 Twitter 用户名
【发布时间】:2011-01-03 06:57:54
【问题描述】:

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!

【问题讨论】:

    标签: php xml api twitter atom-feed


    【解决方案1】:

    非正则表达式解决方案:

    $names = 'username (Friendly Name)';
    list($username, $friendlyName) = explode('(', $names);
    $username = trim($username);
    $friendlyName = trim($friendlyName, ')');
    

    假定括号在任一名称中均无效。

    【讨论】:

      【解决方案2】:

      我想应该这样做:

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

      【讨论】:

        猜你喜欢
        • 2019-03-28
        • 2013-03-18
        • 2017-08-24
        • 2015-11-22
        • 2015-10-31
        • 2015-05-25
        • 1970-01-01
        • 1970-01-01
        • 2011-06-02
        相关资源
        最近更新 更多