سؤال

ولست بحاجة للوصول إلى العلامات اي تيونز في تغذية RSS باستخدام PHP. لقد استعملت simplepie قبل لبودكاست إس، ولكن لست متأكدا من كيفية الحصول على علامات اي تيونز استخدامه. هل هناك طريقة لاستخدام simplepie للقيام بذلك أم أن هناك طريقة أفضل؟


وحسنا حاولت XML بسيط.

ويبدو أن كل هذا (رمز أدناه) للعمل

$feed = simplexml_load_file('http://sbhosting.com/feed/');
$channel = $feed->channel;
$channel_itunes = $channel->children('http://www.itunes.com/dtds/podcast-1.0.dtd');
$summary = $channel_itunes->summary;
$subtitle = $channel_itunes->subtitle;
$category = $channel_itunes->category;
$owner = $channel_itunes->owner->name;

والآن أنا بحاجة للحصول على فئات اي تيونز. يبدو أن أن تكون ممثلة في عدة طرق. في هذه الحالة أحصل على XML التالي:

<itunes:category text="Technology"/>
<itunes:category text="Technology">
  <itunes:category text="Software How-To"/>
</itunes:category> 

وأتوقع أن تكون قادرة على الحصول على فئة بشيء من هذا القبيل:

$category_text = $channel_itunes->category['text'];

ولكن هذا لا يبدو للعمل.

ورأيت طرق أخرى لتمثيل الفئة التي أنا حقا لا أعرف من الحصول عليها.

وعلى سبيل المثال:

تكنولوجيا   اعمال   التعليم

هل هذا الشيء وسائل الإعلام أو شيء اي تيونز أو كليهما؟

وشكرا لمساعدتكم. G

هل كانت مفيدة؟

المحلول

وهذا الرمز يعمل بالنسبة لي:

//$pie is a SimplePie object
$iTunesCategories=$pie->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES,'category');
if ($iTunesCategories) {
  foreach ($iTunesCategories as $iTunesCategory) {
    $category=$iTunesCategory['attribs']['']['text'];
    $subcat=$iTunesCategory['child']["http://www.itunes.com/dtds/podcast-1.0.dtd"]['category'][0]['attribs']['']['text'];
    if ($subcat) {
      $category.=":$subcat";
    }
    //do something with $category
  }
}

نصائح أخرى

للحصول على سمة مع SimpleXML، بدلا من ذلك:

$category_text = $channel_itunes->category['text'];

استخدم:

$category_text = $channel_itunes->category->attributes()->text;

إذا كان لديك PHP5، وذلك باستخدام XML بسيطة يمكن أن تساعد في تحليل المعلومات التي تحتاج إليها.

وSimplePie لديه get_item_tags() وظيفة التي يجب أن تتيح لك الوصول إليها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top