2012-02-22 2 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 "})' будет разделяться на любые типы пробелов. –

ответ

0

Использование explode:

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

Существует функция взрываются, которая может легко добиться. Так, например:

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

Надеюсь, что это поможет.

+0

nope! не работает – sandbox

+0

что пошло не так? – ralfe

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

ИЛИ

$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

0

Предполагая, что вы просто заботиться о том, чтобы получить 2 части: электронную почту и «дружественные name "(потому что люди имеют от 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"; 
} 
?> 
Смежные вопросы