2012-02-08 2 views
-1

다음 코드를 사용하여 Twitter에서 일부 사용자 이름을 추출합니다. 지금까지 수행 에 무엇을 다음과 같이 얻을 :문서에서 특정 문자열을 추출하는 PHP 코드 수정

[0] => com/USERNAME/statuses/[email protected] 
    [1] => com/ANOTHER_USERNAME/statuses/[email protected] 

이 내 코드는 ... 어떻게 만 사용자 이름을 추출 할 수있다?

$file = file_get_contents("http://search.twitter.com/search.rss?q=twitter"); 
    $file = strip_tags($file);   

    preg_match_all("([a-z0-9!#$%&'*+/=?^_`{|}~-]*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)\b)siU", $file, $matches); 

    echo '<pre>'; 
    print_r($matches); 
    echo '</pre>'; 

나는이 사용 SimpleXML을했다하지만 난 그 일을 첫 번째 결과

$url="http://search.twitter.com/search.atom?q=hello"; 
$twitter_xml = simplexml_load_file($url); 

foreach ($twitter_xml->entry->author as $key) { 
    $author = $key->{"uri"}; 

    echo"<li><h5>$author</h5></li>"; 
} 
+0

그래서 항상'패턴입니다 ... 코드를 요리 com' - 슬래시 - 이름 - 슬래시? 그렇다면 정규식은 필요하지 않습니다 ... – lonesomeday

+0

다른 질문보기 : http://stackoverflow.com/questions/9199041/how-to-extract-the-content-of-uri-uri-in-a-xml-document – salathe

답변

5

정지 얻을. 정규식을 사용하면 제대로 구조화 된 여러 가지 기계 판독 가능 형식을 사용할 수 있습니다.

SimpleXML을 사용하여 RSS 피드를 구문 분석하고 필요한 요소를 추출하거나 더 쉽게 JSON 표현 (http://search.twitter.com/search.json?q=twitter)을 사용하여 을 실행하여 멋진 PHP 배열을 얻을 수 있습니다. 추출하고자하는 모든 데이터가 이미 분리되어 있습니다.

+1

정확히 - 정규 표현식을 사용하는 길을 벗어날 필요가 없습니다. 때로는 다른 솔루션이 훨씬 더 실용적인 것처럼 보일 수도 있습니다. – phatskat

+0

안녕하세요, simplexml을 사용하여 내 질문을 업데이트했지만 한 가지 결과 만 얻습니다. – EnexoOnoma

+0

먼저 JSON을 사용하면 훨씬 쉬울 것입니다. 둘째,'foreach ($ twitter_xml-> entry-> author)'를 할 수 없습니다. 'foreach ($ twitter_xml-> entry)'를하고 거기에있는 저자들과 거래해야합니다. – ceejayoz

1

강력한 레시피 : 아마도 simpleXML 또는 DOM, 어쩌면 다른 사람

  1. 파서,
  2. XPath 쿼리 (//guid가 마음에 온다).
  3. parse_url($content, PHP_URL_PATH);
  4. explode('/',$path)
  5. 그 배열의 첫 번째 항목을 가져 오기 URL에서 경로를 얻을 수 있습니다.

이제

+0

안녕하세요, simplexml을 사용하여 내 질문을 업데이트했지만 한 가지 결과 만 얻습니다. – EnexoOnoma

+0

단계 (2),'xpath()'질의 ....로 이동하십시오. 또한 ceejayoz가 맞습니다. json 경로는 여기에서 훨씬 쉽고, 아마도 더 효율적입니다. – Wrikken

+0

물론 알 수는 있지만 새로운 코드를 작성하는 대신 기존 코드에 대한 대답을 얻을 수없는 이유는 무엇입니까? 나는 빠른 해결책을 찾고 있는데, 전문가는 아니다. – EnexoOnoma

관련 문제