2010-01-09 1 views
0

В Twitter Search API возвращает результаты в ATOM/формат XML, который выглядит так:Как извлечь Twitter имя пользователя из Search API с помощью PHP

<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!

ответ

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

Не-регулярное выражение решение:

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

Подразумевается, что круглые скобки не являются действительными в любом имени.

 Смежные вопросы

  • Нет связанных вопросов^_^