2011-10-18 33 views
0

我不知道你是否能够做到这一点,但...从url中获取内容的一部分

有没有办法从URL获取部分内容?

一样,如果我有这样的:

<protected>false</protected> 
<followers_count>6</followers_count> 
<profile_background_color>00afe0</profile_background_color> 

(的全部内容为Twitter

但只希望<followers_count>6</followers_count>一部分?

有人知道如何做到这一点?
(我希望你们知道我的意思)


PS。以上任何内容只是一个示例
PSS。不只是戈纳时使用此XML等格式this太(我不知道名字)

是的,我知道我可以只使用file_get_contents偏移处和maxlen的事情,但问题是,我并不总是知道,我正在寻找的部分在哪里。

+0

Sooo,没人知道吗? D: – Mobilpadde

回答

4

您可以使用本机XML解析器(如SimpleXML)查找特定内容的值。

+0

他不知道XML是什么... –

+1

@webarto我不知道? – Mobilpadde

+0

而thx @Justin,我会试试这个:D – Mobilpadde

0
$data = file_get_contents('http://twitter.com/users/show.xml?screen_name=SlogaNator'); 

$xml = simplexml_load_string($data); 

echo $xml->followers_count; # 6 

“让我们给这家伙弊因为他不知道,你不应该用正则表达式解析XML”的版本...

preg_match('#<followers_count>([0-9]+)</followers_count>#is', $xml, $matches); 
echo $matches[1]; # 6 
+0

这就是他为什么来问这个问题是如何正确完成的。在某个时间点,你也不知道。 –

+0

@Justin Lucas,是的,但我有一种感觉,他会忽略它,并采用“最简单”的解决方案......如果他知道什么是XML,他应该知道它有一个解析器,而不是使用偏移量和maxlen'的东西......我展示了它是如何完成的。 –

+0

@webarto对不起,我不知道关于PHP的一切D: – Mobilpadde

1

你正在寻找被称为XML什么。 PHP有一个built-in XML parser这将允许你提取你需要的数据。

$xml = simplexml_load_file(
      'http://twitter.com/users/show.xml?screen_name=SlogaNator' 
     ); 

$follower_count = (int) $xml->followers_count; // int(6)