2011-10-13 3 views
0

PHP의 RSS 피드에서 가져온 이미지의 URL (링크가 아님)을 가져와야합니다. 나는 내가 피드 항목 중 하나의 링크 (URL이 아님)를 얻고 싶다면 $feed->channel->item->link;을 사용해야 만하지만 피드 항목의 이미지 URL (링크가 아님)을 가져 와서 변수에 삽입하고 싶다면 어떻게해야하는지 알고 있습니다. 나중에 사용하기 위해? 어쩌면 $feed->channel->image->url; - 내가 이것을 사용했지만 아무것도 작동하지 않습니다.PHP - RSS 피드에서 이미지 URL 얻기

이것은 피드를 가져 오기 위해 사용했던 것입니다.

function get_google_image($image){ 
{  $intento=0; 
     $imagealt=get_the_title(); //its wordpress 
     $image=get_the_title(); 
       $words = explode(" ", $image); 
       $imagetitle = implode(" ", array_splice($words, 0, 2)); 
       $image = implode(" ", array_splice($words, 0, 2)); 
     $image=str_replace(" ","+",$image); 
     while (!$feed=simplexml_load_file("http://obsrv.com/General/ImageFeed.aspx?'$image'")){ 
       $attempt+=1; 
       if ($attempt>5) break; 
       print "Retry".$attempt."<br>"; 
       } 
       $imagelink=$feed->channel->image->url; //Here is the problem, this variable finally gets empty and i want it to be the url of the image so i can post it with html later in the line below 
       echo '<img title="' . $imagetitle . '" alt="' . $imagealt . '" src="' . $imagelink . '"/>'; 
}} 

피드는 http://obsrv.com/General/ImageFeed.aspx입니까? (여기에 이미지 검색 키워드가있는 변수) 모든 RSS 게시물에는 하나의 이미지 만 있고이 이미지는 게시물에 첨부 된 파일로 포함되어 있기 때문에 rss 피드 목록 (첫 번째 이미지)에서 첫 번째 항목을 가져 오려고합니다. 도움이된다면 나를 도울 수 있습니다.) 그래서이 이미지를 얻고 url을 변수로 가져 와서 이미지를 게시하기위한 html 코드를 만들 수 있기를 원합니다.

echo '<img title="' . $imagetitle . '" alt="' . $imagealt . '" src="' . $imagelink . '"/>'; 
+0

피드의 URL에서'$의 image' 주위에 작은 따옴표은 ​​무엇인가 : 그것은 해제의 경우에, 당신은 해결 방법으로이 코드를 사용할 수 있습니까? – Phil

+0

이 이전 질문보기 : http://stackoverflow.com/questions/551246/attribute-value-selection-in-simplexml, simplexml 노드에서 속성 값을 가져 오는 방법을 설명합니다 – Clive

+0

해당 피드에서 XML을 게시 할 수 있습니까? 그것은 게시 된 URL에서 직접 액세스 할 수 없습니다. – MyStream

답변

1

당신은 당신의 코드에서 몇 가지 문제 :

the help page에서
  1. , 내가 볼 수있는 잘못된 URL 구조를 제공하는 것이이 :

    "http://obsrv.com/General/ImageFeed.aspx?'$image'" 
    

    그것은해야한다 :

    "http://obsrv.com/General/ImageFeed.aspx?q=" . $image . "" 
    
  2. 내가 코드에서 버그가 있다고 생각 :

    먼저, 당신은 get_google_image($image) 에 함수 매개 변수로 $image을 설정 그리고 당신은 $image은 워드 프레스의 기능에서 가져온 설정합니다. 이것이 의도 한 방법인지 나는 모른다.

  3. 이 코드

    는 버그가 :

    $image=str_replace(" ","+",$image); 
    

    나는 이것이 당신이 찾고있는 무엇을 생각 :

    $image = urlencode($image); 
    
  4. 또 다른 문제는, 당신은 URL과 함께 simplexml_load_file()을 공급했다.

    UPDATE : 필하면 fopen HTTP 래퍼가 활성화 된 경우 simplexml_load_file()는, URL 작업 않는다고 지적했다.

    $raw_html = file_get_contents("http://obsrv.com/General/ImageFeed.aspx?q=$image"); 
    $feed=simplexml_load_string($raw_html); 
    
+1

+1 # 4 번 점을 제외하고.'simplexml_load_file()'은 HTTP 래퍼가 활성화되어 있다면 URL 인자를 받아 들일 수 있습니다 (일반적으로) – Phil

+0

아, 그렇지 않습니다. 매일 배우는 새로운 것들. – ariefbayu

+0

그래,하지만 그건 내 질문이 아니야. $ image = str_replace ("", "+", $ image);를 사용할 때; 그 이유는 내가 +에 대한 작은 부분을 대체하려고하기 때문입니다. 그리고 나는 당신이 $ image 매개 변수에 대해 말한 것을 이해하지 못합니다. 감사 ... –

관련 문제