2009-09-25 4 views
0

내가 PHP에 새로 온 사람이 물어 바보 같은 질문 일 수있다, 그래서 내가 뭔가를 이해하지 못하는 이유만으로PHP simplexml_load_file

php -r "print_r(simplexml_load_file('http://twitter.com/statuses/user_timeline/31139114.rss'));" 

이의는이 보자 ... 저를 아래로 투표를하지 않습니다 예를 들어,이 명령을 실행하여 (화면에서) XML 출력을 가져옵니다. 당신이 simplexml_load_file()가

답변

6

당신은 데이터를 다운로드 할 수 있음을 만들었습니다 것처럼

내 질문에 대신 화면하지만 파일에 데이터를 저장하고 동일한을 해당 파일을 읽고이 할 수 있습니다 file_get_contents과 같은 것을 사용합니다. 그것은 하나의 PHP 문자열로 전체 XML을 얻을 것이다. 예를 들어
:

$xml = file_get_contents('http://twitter.com/statuses/user_timeline/31139114.rss'); 

$xml 이제 XML 문자열을 포함합니다.


그런 다음 file_put_contents을 사용하여 해당 문자열을 파일에 쓸 수 있습니다. 예를 들어
:

file_put_contents('/home/squale/developpement/tests/temp/test.xml', $xml); 

그리고, 명령 줄에서 파일을 확인 : 그 후

$ cat test.xml                                                 
<?xml version="1.0" encoding="UTF-8"?>                                           
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">                                      
    <channel>                                                  
    <title>Twitter/eBayDailyDeals</title>                                          
    <link>http://twitter.com/eBayDailyDeals</link>                                        
    <atom:link type="application/rss+xml" href="http://twitter.com/statuses/user_timeline/31139114.rss" rel="self"/>                        
    <description>Twitter updates from eBay Daily Deals/eBayDailyDeals.</description>                               
    <language>en-us</language>                                             
    <ttl>40</ttl>                                                 
    <item> 
... 
... 


을 해당 파일에서 읽을 simplexml_load_file를 사용할 수 있습니다. 예를 들어
는 :

$data = file_get_contents('/home/squale/developpement/tests/temp/test.xml'); 

그리고 $data 이제 원격 서버에서 얻을 XML을 고려하여 XML 문자열 ;-)


문자열, 직렬화 할 필요가 없습니다 것입니다 포함; 그리고 file_put_contents은 더 쉬울 것입니다. fopen + fwrite + fclose ;-)

+0

저는 답변의 품질과 세부 사항에 끊임없이 감명받습니다. –

+0

왜 15K 담당자 – alexus

+0

@ 프랭크 : 감사합니다! @Alexus : 감사합니다 :-) –