Gönderen Konu: PHP ile RDF Kaynakları OPML kaynağa dönüştürün  (Okunma sayısı 2084 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

RSS ile çok haşır neşir olunca şöyle şeyler olabiliyor...

Gezegen OPML kaynağı boş dönebiliyor...

http://gezegen.pardus.org.tr/opml.xml

RDF dosyası ise çalışabiliyor

http://gezegen.pardus.org.tr/foafroll.xml

lakin RSS okuyucunuz bu miladı dolmuş teknolojiyi desteklemiyor olabilir...

buyrun, iş baya düştü: kaynağı OPML'e kendiniz çevirin...

php ile yazılmış basit bir uygulama:

Kod: [Seç]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php

$feed_url 'rdf.rdf';
$importdata file_get_contents($feed_url);
$importdata str_replace(array("\r\n""\r"), "\n"$importdata);
//echo $importdata;

preg_match_all('|<foaf:member>(.*?)</foaf:member>|is'$importdata$rawitems);
$rawitems $rawitems[1];

$rawitemcount count($rawitems);

if($rawitemcount 0)
{
foreach($rawitems as $rawitem)
{
preg_match('|<foaf:name>(.*?)</foaf:name>|is'$rawitem$item_name);
$item_name $item_name[1];

preg_match('|<foaf:Document rdf:about="(.*?)">|is'$rawitem$item_doc);
$item_doc $item_doc[1];

$data.='<outline text="'.$item_name.'" xmlUrl="'.$item_doc.'" />'."\n";
}
}

?>

<textarea style="width:100%; height:500px">
< ?xml version="1.0" encoding="UTF-8"? >
<opml xmlns:rssowl="http://www.rssowl.org" version="1.1">
  <head>
    <title>RSSOwl Subscriptions</title>
    <dateModified>Sal, 11 Eki 2011 02:18:27 EEST</dateModified>
  </head>
  <body>
    <outline text="My Feeds" rssowl:isSet="true">
      <outline text="FEED KAYNAKLARI" rssowl:isSet="false">
<?php echo $data?>
     </outline>
    </outline>
  </body>
</opml>
</textarea>
</body>
</html>
<!--
rdf2rss çevirici
çok basit bir php scripti...

$feed_url = 'rdf.rdf';

diye belirtilen adrese rdf url sini girmeniz yeterlidir
kendisi size biraz rss e çevrilmiş bir metin verecektir...

sonra siz içinden blank/boş dönenleri temizleyiniz...

bir de ilk satırdaki
< ?xml version="1.0" encoding="UTF-8"? >

kısmındaki ön ve son boşluğu düzenleyiniz...
bitti
-->