Reply to Re: [PHP] PHP, MySQL and XML for IPodCasting

Your name:

Reply:


Posted by Michael Hulse on 12/09/05 14:21

On Dec 9, 2005, at 3:45 AM, Danny wrote:
> How to proceed....

I recently set-up my first Podcast... Every week I have a script that
grabs three MP3 files from a remote server and puts them on my own
server... Then I have another script that generates the Podcast XML.

I am using CRON jobs to do all the work for me... all I have to do is
open iTunes and everything starts downloading automatically.... is
nice.

The way I generate my XML is via output buffering and a simple
text-file template. Here is my template (template.txt):

<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Put your title here [{_dateCheck_}]</title>
<link>Link to your site/the page that explains what this podcast is
all about.</link>
<description>This is the description... it will show-up in iTunes...
yadda yadda...</description>
<language>en-us</language>
<copyright>Copyright Info</copyright>
<lastBuildDate>{_dateLong_}</lastBuildDate>
<webMaster>Your name here</webMaster>
<ttl>1</ttl>
<item>
<title>Name of MP3 podcast - Hour 01, {_dateCheck_},
{_dateSlashes_}</title>
<description>Hour 01 ({_dateSlashes_}) of this particular
podcast.</description>
<pubDate>{_dateLong_}</pubDate>
<enclosure
url="http://www.yoursite.com/location_of_podcast_mp3/mp3_name-
{_dateShort_}.mp3" length="10800040" type="audio/mpeg"/>
<guid isPermaLink="false">{_randNumOne_}</guid>
</item>
<item>
<title>Name of MP3 podcast - Hour 02, {_dateCheck_},
{_dateSlashes_}</title>
<description>Hour 02 ({_dateSlashes_}) of this particular
podcast.</description>
<pubDate>{_dateLong_}</pubDate>
<enclosure
url="http://www.yoursite.com/location_of_podcast_mp3/mp3_name-
{_dateShort_}.mp3" length="10800040" type="audio/mpeg"/>
<guid isPermaLink="false">{_randNumTwo_}</guid>
</item>
<item>
<title>Name of MP3 podcast - Hour 03, {_dateCheck_},
{_dateSlashes_}</title>
<description>Hour 03 ({_dateSlashes_}) of this particular
podcast.</description>
<pubDate>{_dateLong_}</pubDate>
<enclosure
url="http://www.yoursite.com/location_of_podcast_mp3/mp3_name-
{_dateShort_}.mp3" length="10800040" type="audio/mpeg"/>
<guid isPermaLink="false">{_randNumThree_}</guid>
</item>
</channel>
</rss>

Here is my PHP (pod.php):

<?php

# Error checking:
if((isset($_REQUEST['pass'])) && ($_REQUEST['pass'] === 'let_me_in') &&
(!empty($_REQUEST['pass']))) {

# Begin date:
$date_long = date('r'); // Example output: Mon, 21 Nov 2005 05:20:18
-0500
$date_short = date('mdy'); // Example output: 051121
$date_slashes = date('m/d/y'); // Example output: 11/21/05
$date_check = date('l');
#End date.

function randNumb() {
# Begin random # generation:
srand ((double) microtime( )*1000000);
$random_number = rand( );
return $random_number;
# End random # generation.
}

$rand_num_one = randNumb();
$rand_num_two = randNumb();
$rand_num_three = randNumb();


// HTML to be written:
ob_start();

readfile($_SERVER['DOCUMENT_ROOT'].'/template.txt');

$contents = ob_get_clean();
@ob_end_clean();

$contents = str_replace('{_dateLong_}',$date_long, $contents);
$contents = str_replace('{_dateSlashes_}',$date_slashes, $contents);
$contents = str_replace('{_dateShort_}',$date_short, $contents);
$contents = str_replace('{_randNumOne_}',$rand_num_one, $contents);
$contents = str_replace('{_randNumTwo_}',$rand_num_two, $contents);
$contents = str_replace('{_randNumThree_}',$rand_num_three, $contents);
$contents = str_replace('{_dateCheck_}',$date_check, $contents);

# Now open the file and write contents of template:
$fp =
fopen($_SERVER['DOCUMENT_ROOT'].'/
path_to_place_where_you_store_the_xml_file/
xml_file_name'.$date_check.'.xml','wb'); // Open for writing only; If
the file does not exist, attempt to create it.
fwrite($fp, $contents);
fclose($fp);

} else { echo "<h1>Please Leave Now!</h1>"; }

?>

I then use a cron to run the above script every week, like so:

GET http://www.your_site.com/pod.php?pass=let_me_in > /dev/null

Or, instead of using the CRON, you can just got to the script via your
browser like so:

http://www.your_site.com/pod.php?pass=let_me_in

And the XML file will generate itself.

Please keep in mind, I quickly slapped this script together... It gets
the job done for me... I am sure there are way better ways to do what I
am doing... also, the XML template could be more robust (more meta-tags
maybe?)... the PHP script could probably use something other than
output buffering... If anyone has ideas/thoughts/suggestions for
improvements please let me know.

HTH,
Cheers,
Micky
--
BCC for Privacy: http://www.cs.rutgers.edu/~watrous/bcc-for-privacy.html
My del.icio.us: http://del.icio.us/mhulse

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация