2012-02-22 40 views
0

在下面的代碼中,是否可能溢出對象$author其中white space occurs在PHP對象中分割數據

<?php 
$url="http://search.twitter.com/search.rss?q=laugh"; 
$twitter_xml = simplexml_load_file($url); 

foreach ($twitter_xml->channel->item as $key) { 
$a = $key->{"author"}; 
echo $a; 
} 
?> 
+0

當然可以。 'preg_split('/ \ s + /',$ key - > {「author」})'會分割任何類型的空白。 – 2012-02-22 18:58:23

回答

0

使用explode

$array = explode(' ', $key->{"author"}); 
0

有一個爆炸功能,可以輕鬆實現這一目標。因此,例如:

$a = $key->{"author"}; 
$author = explode(" ", $a); 
$first_name = $author[0]; 
$last_name = $author[1]; 

希望有所幫助。

+0

不!沒有工作 – sandbox 2012-02-22 19:01:36

+0

出了什麼問題? – ralfe 2012-02-22 19:04:21

2
$split = explode(' ', (string) $key->{"author"})); 

OR

$split = preg_split('/\s+/', (string) $key->{"author"})); 

要通過@拆分只需要$分裂,在循環中運行

foreach($split as $key => $value) { 
    $eta = explode('@', $value); 
    var_dump($eta); 
} 

要檢查是否字符串存在使用strpos

foreach($split as $key => $value) { 
    if (strpos($value, '@') !== 0) echo 'found'; 
} 
+0

它的工作原理...我可以進一步拆分'$ split'來檢查字符串中的'@'...? – sandbox 2012-02-22 19:14:02

0

假設你只關心得到2部分:電子郵件,和「友好名稱「(導致人們有​​1到n個名字)。

<?php 
$url="http://search.twitter.com/search.rss?q=laugh"; 
$twitter_xml = simplexml_load_file($url); 

foreach ($twitter_xml->channel->item as $key) { 
$a = $key->{"author"}; 
preg_match("/([^ ]*) (.*)/", $a, $matches); 
print_r($matches); 
echo "\n"; 
} 
?>