Witam, chce zrobić sobie mobilną wersję moich ulubionych wiadomości, pobieram z rssa za pomocą DOMDocument, rss jest kodowany w iso-8859-1.
Więc pobieram go:
$doc = new DOMDocument();
$doc->load('http://XXX.xml');
foreach ($doc->getElementsByTagName('item') as $node) {
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
'guid' => $node->getElementsByTagName('guid')->item(0)->nodeValue
);
}
i trochę artykuł modyfikuję usuwająć niepotrzebne linki:
$title = $itemRSS['title'];
$string = $itemRSS['desc'];
//
//
$pattern = '/<img src="http:\/\/i.XXX.de\/(.*).jpg" width="(.*)" height="(.*)"\/>/i';
$replacement = '';
//
$pattern = '/<h2><a href="http:\/\/XXX.mobi\/news\/(.*)\/comments">XXX<\/a><\/h2>/i';
$replacement = '';
//
No i na koniec wysyłam na swój prywatny blog:
wpPostXMLRPC($title,$string,'http://XXX.XXX','LOGIN','PASS','News');
Wszystko działa, tylko kodowanie jest popsute:
przykład:
[txt]To roczne sprawozdanie z dziaÅalnoÅci w 2011 roku, firma w której Mozilla Foundation wydzielona rozwoju projektów gÅównych oprogramowanie, teraz daÅ. Nagrali 136 milionów dolarów przychodów w zeszÅym roku. 33 Procent sÄ
co najmniej wiÄcej niż w roku poprzednim. [/txt]
no i funkcja która wysyła na wordpressa:
function wpPostXMLRPC
($title,$body,$rpcurl,$username,$password,$categories=array(1
)){ $categories = implode(",", $categories); $XML = "<title>$title</title>".
"<category>$categories</category>".
$body;
$params = array('','',$username,$password,$XML,1
); $request = xmlrpc_encode_request('blogger.newPost',$params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_ENCODING, 'utf-8'); // próbowałem już z iso-8859-1 i utf-8 i za każdym razem tylko szlaczki na blogu mam :|
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_URL, $rpcurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_exec($ch);
curl_close($ch);
}
Ten post edytował Saki 17.11.2012, 17:27:55