Current time: 04-16-2014, 06:04 AM Hello There, Guest! (LoginRegister)

Post Reply 
PHP Include
10-30-2005, 04:37 PM
Post: #1
PHP Include
I just signed up with DH and cant figure out how to get my php working properly. If someone could help that would be great!

I am trying to add a basic php include into a web page. I have done this correctly a different site (with the same code) that is hosted by a different company so I dont understand what I am doing wrong for my site hosted on DH.

I am trying to use rss2html. The php include that I have inluded is in a file called test.php and looks like this:

<?php @include("http://www.mydomain.com/rss2html.php?XMLFILE=http://www.mydomain.com/rss/news.xml&TEMPLATE=http://www.mydomain.com/template.html&MAXITEMS=50"); ?>

I have uploaded all files into my root directory (besides the xml file)

When I open up http://www.mydomain.com/test.php the info php include is supposed to retreive is empty.

Can someone please help me?

Thanks,
Find all posts by this user
Quote this message in a reply
10-30-2005, 04:56 PM
Post: #2
PHP Include
Try this:
Code:
<?php
$path = $_SERVER['DOCUMENT_ROOT'];
include("$path/rss2html.php?XMLFILE=$path/rss/news.xml&TEMPLATE=$path/template.html&MAXITEMS=50");
?>
---------------
Simon Jessey
Keystone Websites | si-blog
Visit this user's website Find all posts by this user
Quote this message in a reply
10-30-2005, 07:15 PM
Post: #3
PHP Include
thank you for the reply, I am still trying but there is still something wrong;

I received this now in the output file:

Warning: main(): URL file-access is disabled in the server configuration in...

Is there something I need to configure in DH to run php?

Thanks,
Find all posts by this user
Quote this message in a reply
10-30-2005, 08:30 PM
Post: #4
PHP Include
the f open function has been disableled here for security reasons. You'll have to reaplce said function with curl. Search the forum for more info..

-Matttail
Visit this user's website Find all posts by this user
Quote this message in a reply
10-31-2005, 09:50 AM
Post: #5
PHP Include
If you are accessing pages within your own domain, you should not use the full URL (http://....). If you are doing server-side includes, use the environment variable $_SERVER['DOCUMENT_ROOT'] instead of the "http://domain.com". If you are accessing a remote site (not on your own domain), you will need to use cURL, as previously recommended.

---------------
Simon Jessey
Keystone Websites | si-blog
Visit this user's website Find all posts by this user
Quote this message in a reply
11-02-2005, 08:31 PM
Post: #6
PHP Include
I am in a little over my head with php. I basically know how to cut and paste :-)

I do understand that if I want to access a domain not hosted here I need to use the full address. However in the include I posted, there are 3 documents. 2 are on my domain and 1 isnt.

How would I use cURL to access the site not hosted here?
In the example below I have put in http://www.domain.com

<?php
$path = $_SERVER['DOCUMENT_ROOT'];
include("$path/rss2html.php?XMLFILE=http://www.domain.com&TEMPLATE=$path/template.html&MAXITEMS=50");
?>

Do I put the Curl code in the include I already have?

This is the curl include:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://domain.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>

Thanks so much,
Find all posts by this user
Quote this message in a reply
11-03-2005, 07:24 AM
Post: #7
PHP Include
Quote:How would I use cURL to access the site not hosted here?
This:
Code:
<?php
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, 'http://example.com');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
Is functionally equivalent to this:
Code:
<?php
include("http://example.com/");
?>
But your problem is slightly different. As far as I can tell, you are trying to pass variables (that happen to be remote URLs) to a script on rss2html.php; therefore, it is that script that needs to be changed to use cURL. You will need to post the contents of rss2html.php so that we can see what is going on.

---------------
Simon Jessey
Keystone Websites | si-blog
Visit this user's website Find all posts by this user
Quote this message in a reply
11-10-2005, 12:00 AM
Post: #8
PHP Include
I checked the rss2html.php file and it is using cURL

If this file is using cURL, then how do I rewrite the php include to use cURL for the one url and not for the others?
I understand the cURL code, but how do I rewrite the php include to take this into account?

Thanks

Jay

Here is the code from the file:

<?PHP
//
// rss2html.php RSS feed to HTML webpage script
//
// Copyright 2004,205 NotePage, Inc.
// http://www.feedforall.com
// This script may be used freely for business or personal use
// This script may not be resold in any form
//
// $Id: rss2html.php,v 2.3 2005/09/06 22:55:27 housley Exp $
//
// $Log: rss2html.php,v $
// Revision 2.3 2005/09/06 22:55:27 housley
// GUID doesn't need urlencode()
//
// Revision 2.2 2005/08/16 19:53:15 housley
// Add the ~~~ItemAuthor~~~ subsitution that uses first <author> and then
// <dc:creator> for its contents
//
// Revision 2.1 2005/08/15 14:49:24 housley
// Convert ' to ' since ' is not HTML
//
// Revision 2.0 2005/07/30 14:09:38 housley
// Allow "allow_url_fopen" to be sellected, incase CURL is not available.
//
// Revision 1.33 2005/07/20 00:53:35 housley
// Fix it so the this PHP script can be used as a PHP include many time on the same page
//
// Revision 1.32 2005/07/20 00:36:27 housley
// Don't set allow_url_fopen any more
//
// Revision 1.31 2005/07/20 00:35:28 housley
// Use CURL to open URLs instead of fopen()
//
// Revision 1.30 2005/05/08 01:47:27 housley
// Add NoFutureItems
//
// Revision 1.29 2005/05/06 01:04:56 housley
// Make sure FeedMaxItems is not larger then the number of items.
//
// Revision 1.28 2005/04/30 18:08:41 housley
// ~~~SortByPubDate~~~ will force the sorting of the items by pubDate, with the newest being first.
//
// Revision 1.27 2005/04/30 17:49:17 housley
// Allow FeedMaxItems to be negative. A negative number will grab the last
// items
//
// Revision 1.26 2005/03/28 14:48:45 housley
// * Remove debug print statement
// * Fix the creation of the putDate for cases when the feed didn't have them, bad feed...bad feed.
//
// Revision 1.25 2005/03/23 23:22:48 housley
// Handle dc:date in RSS 2.0 feeds. If both pubData and dc:date exist, pubDate has priority
//
// Revision 1.24 2005/03/11 12:44:44 housley
// Exit with short message if a file can't be opened.
//
// Revision 1.23 2005/03/09 15:15:41 housley
// Add copyright header
//
// Revision 1.22 2005/03/08 15:25:04 housley
// * Add ID for full version number
// * Add Log to show change logs
// * Add support for <content:encoded> and ~~~FeedContentEncoded~~~ and ~~~ ItemContentEncoded~~~
//
//

//
// Set the following variable useFopenURL to one if you want/need to use fopen instead of CURL
$useFopenURL = 0;

if ($useFopenURL) {
ini_set("allow_url_fopen", "1");
}

//
// If XLMfile is passed as part of the REQUEST_URI, then it will be used
// otherwise the the file below is used.
//$XMLfilename = "http://examlple.com/sample.xml";
$XMLfilename = "sample.xml";
if (isset($_REQUEST["XMLFILE"])) {
if (stristr($_REQUEST["XMLFILE"], "file://")) {
// Not allowed
;
}
elseif (stristr($_REQUEST["XMLFILE"], "://")) {
// URL files are allowed
$XMLfilename = $_REQUEST["XMLFILE"];
} else {
// It is local and must be in the same directory
$XMLfilename = basename($_REQUEST["XMLFILE"]);
}
}

//
// If TEMPLATE is passed as part of the REQUEST_URI, then it will be used
// otherwise the the file below is used.
$TEMPLATEfilename = "template.html";
if (isset($_REQUEST["TEMPLATE"])) {
if (stristr($_REQUEST["TEMPLATE"], "file://")) {
// Not allowed
;
}
elseif (stristr($_REQUEST["TEMPLATE"], "://")) {
// URL files are allowed
$TEMPLATEfilename = $_REQUEST["TEMPLATE"];
} else {
// It is local and must be in the same directory
$TEMPLATEfilename = basename($_REQUEST["TEMPLATE"]);
}
}

//
// date() function documented http://www.php.net/manual/en/function.date.php
//

$LongDateFormat = "F jS, Y"; // ie, "Jan 21st, 2004"

$ShortDateFormat = "m/d/Y"; // ie, "1/21/2004"
//$ShortDateFormat = "d/m/Y"; // ie, "21/1/2004"

$LongTimeFormat = "H:iConfused T O"; // ie, "13:24:30 EDT -0400"

$ShortTimeFormat = "h:i A"; // ie, "1:24 PM"

//
// Maximum number of items to be displayed
//

$FeedMaxItems = 10000;
if (isset($_REQUEST["MAXITEMS"])) {
$FeedMaxItems = $_REQUEST["MAXITEMS"];
}
$NoFutureItems = FALSE;
if (isset($_REQUEST["NOFUTUREITEMS"])) {
$NoFutureItems = TRUE;
}

//
// As much as I hate globals, they are needed due to the
// recusive nature of the parser
$insidechannel = FALSE;
$level_channel = 0;
$insidechannelimage = FALSE;
$level_channelimage = 0;
$insideitem = FALSE;
$level_item = 0;

if (function_exists("FeedForAll_rss2html_getRFDdate") === FALSE) {
Function FeedForAll_rss2html_getRFDdate($datestring) {
$year = substr($datestring, 0, 4);
$month = substr($datestring, 5, 2);
$day = substr($datestring, 8, 2);
$hour = substr($datestring, 11, 2);
$minute = substr($datestring, 14, 2);
$second = substr($datestring, 17, 2);
if (substr($datestring, 19, 1) == "Z") {
$offset_hour = 0;
$offset_minute = 0;
} else {
if (substr($datestring, 19, 1) == "+") {
$offset_hour = substr($datestring, 20, 2);
$offset_minute = substr($datestring, 23, 2);
} else {
$offset_hour = -1*substr($datestring, 20, 2);
$offset_minute = -1*substr($datestring, 23, 2);
}
}
return gmmktime($hour+$offset_hour, $minute+$offset_minute, $second, $month, $day, $year);
}

class FeedForAll_rss2html_RSSParser {
var $gotROOT = 0;
var $feedTYPE = "RSS";
var $level = 0;
var $tag = "";
var $title = "";
var $description = "";
var $contentEncoded = "";
var $link = "";
var $guid = "";
var $enclosureURL = "";
var $pubdate = "";
var $pubdateDC = "";
var $fimageURL = "";
var $fimageTitle = "";
var $fimageLink = "";
var $author = "";
var $DcCreator = "";

var $FeedTitle = "";
var $FeedDescription = "";
var $FeedContentEncoded = "";
var $FeedLink = "";
var $FeedPubDate = "";
var $FeedPubDateDC = "";
var $FeedPubDate_t = "";
var $FeedImageURL = "";
var $FeedImageTitle = "";
var $FeedImageLink = "";
// When adding new Item elements, be sure to update the sort below
var $ItemTitle = "";
var $ItemDescription = "";
var $ItemContentEncoded = "";
var $ItemLink = "";
var $ItemGuid = "";
var $ItemPubDate = "";
var $ItemPubDate_t = "";
var $ItemEnclosureURL = "";
var $ItemAuthor = "";

function startElement($parser, $tagName, $attrs) {
GLOBAL $insidechannel;
GLOBAL $level_channel;
GLOBAL $insidechannelimage;
GLOBAL $level_channelimage;
GLOBAL $insideitem;
GLOBAL $level_item;

$this->level++;
$this->tag = $tagName;
if ($this->gotROOT == 0) {
$this->gotROOT = 1;
if (strstr($tagName, "RSS")) {
$this->feedTYPE = "RSS";
}
elseif (strstr($tagName, "RDF")) {
$this->feedTYPE = "RDF";
}
elseif (strstr($tagName, "FEE")) {
$this->feedTYPE = "FEE";
$insidechannel = TRUE;
$level_channel = 1;
}
}
elseif ((($tagName == "ITEM") && ($this->feedTYPE != "FEE")) || (($tagName == "ENTRY") && ($this->feedTYPE == "FEE"))) {
$insideitem = TRUE;
$level_item = $this->level;
}
elseif (($insideitem) && ($tagName == "ENCLOSURE")) {
$this->enclosureURL = $attrs["URL"];
}
elseif (($tagName == "LINK") && ($this->feedTYPE == "FEE")) {
$this->link = $attrs["HREF"];
}
elseif ($tagName == "CHANNEL") {
$insidechannel = TRUE;
$level_channel = $this->level;
}
elseif (($tagName == "IMAGE") && ($insidechannel = TRUE)) {
$insidechannelimage = TRUE;
$level_channelimage = $this->level;
}
}

function endElement($parser, $tagName) {
GLOBAL $insidechannel;
GLOBAL $level_channel;
GLOBAL $insidechannelimage;
GLOBAL $level_channelimage;
GLOBAL $insideitem;
GLOBAL $level_item;
GLOBAL $NoFutureItems;

$this->level--;
if ((($tagName == "ITEM") && ($this->feedTYPE != "FEE")) || (($tagName == "ENTRY") && ($this->feedTYPE == "FEE"))) {
$UseItem = TRUE;

if ($NoFutureItems) {
$noon = strtotime("today at 12:00");
if (trim($this->pubdate) != "") {
$ItemPubDate = strtotime($this->pubdate);
}
else if (trim($this->pubdateDC) != "") {
$ItemPubDate = FeedForAll_rss2html_getRFDdate($this->pubdateDC);
} else {
$ItemPubDate = time();
}
if (($ItemPubDate - $noon) > 43200) {
$UseItem = FALSE;
}
}

if ($UseItem) {
$this->ItemTitle[] = trim($this->title);
$this->ItemDescription[] = trim($this->description);
$this->ItemContentEncoded[] = trim($this->contentEncoded);
if (trim($this->contentEncoded) == "") {
$this->ItemContentEncoded[] = $this->description;
}
$this->ItemLink[] = trim($this->link);
//
// Get the pubDate from pubDate first and then dc:date
if (trim($this->pubdate) != "") {
$this->ItemPubDate[] = trim($this->pubdate);
$this->ItemPubDate_t[] = strtotime($this->pubdate);
}
else if (trim($this->pubdateDC) != "") {
$this->ItemPubDate[] = trim($this->pubdateDC);
$this->ItemPubDate_t[] = FeedForAll_rss2html_getRFDdate($this->pubdateDC);
} else {
$this->ItemPubDate[] = date("D, d M Y H:iConfused +0000");
$this->ItemPubDate_t[] = time();
}
$this->ItemGuid[] = trim($this->guid);
$this->ItemEnclosureURL[] = trim($this->enclosureURL);
if ($this->author == "") {
$this->ItemAuthor[] = $this->DcCreator;
} else {
$this->ItemAuthor[] = $this->author;
}
}
$this->title = "";
$this->description = "";
$this->contentEncoded = "";
$this->link = "";
$this->pubdate = "";
$this->pubdateDC = "";
$this->guid = "";
$this->enclosureURL = "";
$this->author = "";
$this->DcCreator = "";
$insideitem = FALSE;
$level_item = 0;
}
elseif (($tagName == "IMAGE") && ($insidechannelimage)) {
$this->FeedImageURL = trim($this->fimageURL);
$this->FeedImageTitle = trim($this->fimageTitle);
$this->FeedImageLink = trim($this->fimageLink);
$this->fimageURL = "";
$this->fimageTitle = "";
$this->fimageLink = "";
$insidechannelimage = FALSE;
$level_channelimage = 0;
}
elseif ($tagName == "CHANNEL") {
//
// Get the pubDate from pubDate first and then dc:date
if (trim($this->pubdate) != "") {
$this->FeedPubDate_t = strtotime($this->FeedPubDate);
}
else if (trim($this->pubdateDC) != "") {
$this->FeedPubDate_t = FeedForAll_rss2html_getRFDdate($this->FeedPubDateDC);
} else {
$this->FeedPubDate = date("D, d M Y H:iConfused +0000");
$this->FeedPubDate_t = time();
}
$insidechannel = FALSE;
$level_channel = 0;
}
elseif ($this->level == $level_channel) {
if ($tagName == "TITLE") {
$this->FeedTitle = trim($this->title);
$this->title = "";
}
elseif (($tagName == "DESCRIPTION") || ($tagName == "TAGLINE")) {
$this->FeedDescription = trim($this->description);
$this->description = "";
}
elseif ($tagName == "CONTENT:ENCODED") {
$this->FeedContentEncoded = trim($this->contentEncoded);
$this->contentEncoded = "";
}
elseif ($tagName == "LINK") {
$this->FeedLink = trim($this->link);
$this->link = "";
}
}
}

function characterData($parser, $data) {
GLOBAL $insidechannel;
GLOBAL $level_channel;
GLOBAL $insidechannelimage;
GLOBAL $level_channelimage;
GLOBAL $insideitem;
GLOBAL $level_item;

if (($data == "") || ($data == NULL)) {
} else {
if (($insideitem) && ($this->level == $level_item+1)) {
switch ($this->tag) {
case "TITLE":
$this->title .= $data;
break;

case "DESCRIPTION":
$this->description .= $data;
break;

case "CONTENT:ENCODED":
$this->contentEncoded .= $data;
break;

case "SUMMARY":
$this->description .= $data;
break;

case "LINK":
$this->link .= $data;
break;

case "PUBDATE":
$this->pubdate .= $data;
break;

case "DC:DATE":
$this->pubdateDC .= $data;
break;

case "MODIFIED":
$this->pubdateDC .= $data;
break;

case "GUID":
$this->guid .= $data;
break;

case "AUTHOR":
$this->author .= $data;
break;

case "DC:CREATOR":
$this->DcCreator .= $data;
break;
}
}
elseif ($insidechannelimage) {
switch ($this->tag) {
case "TITLE":
$this->fimageTitle .= $data;
break;

case "URL":
$this->fimageURL .= $data;
break;

case "LINK":
$this->fimageLink .= $data;
break;
}
}
elseif (($insidechannel) && ($this->level == $level_channel+1)) {
switch ($this->tag) {
case "TITLE":
$this->title .= $data;
break;

case "DESCRIPTION":
$this->description .= $data;
break;

case "CONTENT:ENCODED":
$this->contentEncoded .= $data;
break;

case "TAGLINE":
$this->description .= $data;
break;

case "LINK":
$this->link .= $data;
break;

case "PUBDATE":
$this->FeedPubDate .= $data;
break;

case "DC:DATE":
$this->FeedPubDateDC .= $data;
break;

case "MODIFIED":
$this->FeedPubDateDC .= $data;
break;
}
}
}
}
}
}

if (stristr($TEMPLATEfilename, "://")) {
if ($useFopenURL) {
if (($fd = @fopen($TEMPLATEfilename, "rb")) === FALSE) {
echo "Unable to open template $TEMPLATEfilename, exiting\n";
exit -1;
}
$template = NULL;
while (($data = fread($fd, 4096)) != "") {
$template .= $data;
}
fclose($fd);
}else {
// This is a URL so use CURL
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $TEMPLATEfilename);
curl_setopt($curlHandle, CURLOPT_HEADER, 0);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
$template = curl_exec($curlHandle);
if (curl_errno($curlHandle)) {
curl_close($curlHandle);
echo "Unable to open template $TEMPLATEfilename, exiting\n";
exit -1;
}
curl_close($curlHandle);
}
} else {
// This is a local file, so use fopen
if (($fd = @fopen($TEMPLATEfilename, "rb")) === FALSE) {
echo "Unable to open template $TEMPLATEfilename, exiting\n";
exit -1;
}
$template = NULL;
while (($data = fread($fd, 4096)) != "") {
$template .= $data;
}
fclose($fd);
}

if (strstr($template, "~~~NoFutureItems~~~")) {
$NoFutureItems = TRUE;
}

$xml_parser = xml_parser_create('');
$rss_parser = new FeedForAll_rss2html_RSSParser();
xml_set_object($xml_parser,$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,1);
if (stristr($XMLfilename, "://")) {
if ($useFopenURL) {
if (($fd = @fopen($XMLfilename, "rb")) === FALSE) {
echo "Unable to open RSS Feed $XMLfilename, exiting\n";
exit -1;
}
// Read the whole file 4k at a time so remote files can be read
while (($XML = fread($fd, 4096)) != "") {
xml_parse($xml_parser,$XML);
}
fclose($fd);
} else {
// This is a URL so use CURL
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $XMLfilename);
curl_setopt($curlHandle, CURLOPT_HEADER, 0);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
$XML = curl_exec($curlHandle);
if (curl_errno($curlHandle)) {
curl_close($curlHandle);
echo "Unable to open template $XMLfilename, exiting\n";
exit -1;
}
curl_close($curlHandle);
xml_parse($xml_parser,$XML);
}
} else {
// This is a local file, so use fopen
if (($fd = @fopen($XMLfilename, "rb")) === FALSE) {
echo "Unable to open RSS Feed $XMLfilename, exiting\n";
exit -1;
}
// Read the whole file 4k at a time so remote files can be read
while (($XML = fread($fd, 4096)) != "") {
xml_parse($xml_parser,$XML);
}
fclose($fd);
}
xml_parser_free($xml_parser);

// make sure the channel contentEncoded is not blank
if ($rss_parser->FeedContentEncoded == "") {
$rss_parser->FeedContentEncoded = $rss_parser->FeedDescription;
}
$template = str_replace("~~~FeedTitle~~~", $rss_parser->FeedTitle, $template);
$template = str_replace("~~~FeedDescription~~~", $rss_parser->FeedDescription, $template);
$template = str_replace("~~~FeedContentEncoded~~~", $rss_parser->FeedContentEncoded, $template);
$template = str_replace("~~~FeedLink~~~", $rss_parser->FeedLink, $template);
$template = str_replace("~~~FeedPubDate~~~", $rss_parser->FeedPubDate, $template);
$template = str_replace("~~~FeedPubLongDate~~~", date($LongDateFormat, $rss_parser->FeedPubDate_t), $template);
$template = str_replace("~~~FeedPubShortDate~~~", date($ShortDateFormat, $rss_parser->FeedPubDate_t), $template);
$template = str_replace("~~~FeedPubLongTime~~~", date($LongTimeFormat, $rss_parser->FeedPubDate_t), $template);
$template = str_replace("~~~FeedPubShortTime~~~", date($ShortTimeFormat, $rss_parser->FeedPubDate_t), $template);
$template = str_replace("~~~FeedImageUrl~~~", $rss_parser->FeedImageURL, $template);
$template = str_replace("~~~FeedImageTitle~~~", $rss_parser->FeedImageTitle, $template);
$template = str_replace("~~~FeedImageLink~~~", $rss_parser->FeedImageLink, $template);
$match = NULL;

$template = str_replace("~~~NoFutureItems~~~", "", $template);

// Sort by PubDate if requested
if (strstr($template, "~~~SortByPubDate~~~")) {
$template = str_replace("~~~SortByPubDate~~~", "", $template);

for ($x = 0; $x < count($rss_parser->ItemTitle)-1; $x++)
{
for ($y = $x+1; $y < count($rss_parser->ItemTitle); $y++)
{
if ($rss_parser->ItemPubDate_t[$x] < $rss_parser->ItemPubDate_t[$y])
{
// Swap them
$swapTemp = $rss_parser->ItemTitle[$x]; $rss_parser->ItemTitle[$x] = $rss_parser->ItemTitle[$y]; $rss_parser->ItemTitle[$y] = $swapTemp;
$swapTemp = $rss_parser->ItemDescription[$x]; $rss_parser->ItemDescription[$x] = $rss_parser->ItemDescription[$y]; $rss_parser->ItemDescription[$y] = $swapTemp;
$swapTemp = $rss_parser->ItemContentEncoded[$x]; $rss_parser->ItemContentEncoded[$x] = $rss_parser->ItemContentEncoded[$y]; $rss_parser->ItemContentEncoded[$y] = $swapTemp;
$swapTemp = $rss_parser->ItemLink[$x]; $rss_parser->ItemLink[$x] = $rss_parser->ItemLink[$y]; $rss_parser->ItemLink[$y] = $swapTemp;
$swapTemp = $rss_parser->ItemGuid[$x]; $rss_parser->ItemGuid[$x] = $rss_parser->ItemGuid[$y]; $rss_parser->ItemGuid[$y] = $swapTemp;
$swapTemp = $rss_parser->ItemPubDate[$x]; $rss_parser->ItemPubDate[$x] = $rss_parser->ItemPubDate[$y]; $rss_parser->ItemPubDate[$y] = $swapTemp;
$swapTemp = $rss_parser->ItemPubDate_t[$x]; $rss_parser->ItemPubDate_t[$x] = $rss_parser->ItemPubDate_t[$y]; $rss_parser->ItemPubDate_t[$y] = $swapTemp;
$swapTemp = $rss_parser->ItemEnclosureURL[$x]; $rss_parser->ItemEnclosureURL[$x] = $rss_parser->ItemEnclosureURL[$y]; $rss_parser->ItemEnclosureURL[$y] = $swapTemp;
$swapTemp = $rss_parser->ItemAuthor[$x]; $rss_parser->ItemAuthor[$x] = $rss_parser->ItemAuthor[$y]; $rss_parser->ItemAuthor[$y] = $swapTemp;
}
}
}
}

// The the maximum items requested
if (strstr($template, "~~~FeedMaxItems=")) {
// Limit the maximun number of items displayed
if (preg_match("/~~~FeedMaxItems=([0-9-]*)~~~/", $template, $match) !== FALSE) {
if (($match[0] != "") && ($match[1] != "")) {
$FeedMaxItems = $match[1];
$template = str_replace("~~~FeedMaxItems=$match[1]~~~", "", $template);
if (abs($FeedMaxItems) > count($rss_parser->ItemTitle)) {
if ($FeedMaxItems > 0) {
$FeedMaxItems = count($rss_parser->ItemTitle);
} else {
$FeedMaxItems = -count($rss_parser->ItemTitle);
}
}
}
}
}

//
// Find the string, if it exists, between the ~~~EndItemsRecord~~~ and ~~~BeginItemsRecord~~~
//
while ((strstr($template, "~~~BeginItemsRecord~~~")) !== FALSE) {
$match = NULL;
$allitems = NULL;
$loop_limit = min(abs($FeedMaxItems), count($rss_parser->ItemTitle));
if (($parts = split("~~~BeginItemsRecord~~~", $template)) !== FALSE) {
if (($parts = split("~~~EndItemsRecord~~~", $parts[1])) !== FALSE) {
$WholeBlock = $parts[0];
//
// Check for ~~~BeginAlternateItemsRecord~~~
//
if (strstr($WholeBlock, "~~~BeginAlternateItemsRecord~~~")) {
$parts = split("~~~BeginAlternateItemsRecord~~~", $WholeBlock);
$block1 = $parts[0];
$block2 = $parts[1];
} else {
$block1 = $WholeBlock;
$block2 = $WholeBlock;
}
if ($FeedMaxItems < 0) {
for ($x = count($rss_parser->ItemTitle)-1; $x >= count($rss_parser->ItemTitle) + $FeedMaxItems; $x--) {
$item = str_replace("~~~ItemTitle~~~", $rss_parser->ItemTitle[$x], $block1);
$item = str_replace("~~~ItemDescription~~~", $rss_parser->ItemDescription[$x], $item);
$item = str_replace("~~~ItemContentEncoded~~~", $rss_parser->ItemContentEncoded[$x], $item);
$item = str_replace("~~~ItemLink~~~", $rss_parser->ItemLink[$x], $item);
$item = str_replace("~~~ItemPubDate~~~", $rss_parser->ItemPubDate[$x], $item);
$item = str_replace("~~~ItemGuid~~~", $rss_parser->ItemGuid[$x], $item);
$item = str_replace("~~~ItemPubLongDate~~~", date($LongDateFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubShortDate~~~", date($ShortDateFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubLongTime~~~", date($LongTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubShortTime~~~", date($ShortTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemEnclosureUrl~~~", $rss_parser->ItemEnclosureURL[$x], $item);
$item = str_replace("~~~ItemAuthor~~~", $rss_parser->ItemAuthor[$x], $item);
$allitems .= $item;
$x--;
if ($x >= count($rss_parser->ItemTitle) + $FeedMaxItems) {
//
// This is at least one more item so use the Alternate definition
//
$item = str_replace("~~~ItemTitle~~~", $rss_parser->ItemTitle[$x], $block2);
$item = str_replace("~~~ItemDescription~~~", $rss_parser->ItemDescription[$x], $item);
$item = str_replace("~~~ItemContentEncoded~~~", $rss_parser->ItemContentEncoded[$x], $item);
$item = str_replace("~~~ItemLink~~~", $rss_parser->ItemLink[$x], $item);
$item = str_replace("~~~ItemPubDate~~~", $rss_parser->ItemPubDate[$x], $item);
$item = str_replace("~~~ItemGuid~~~", $rss_parser->ItemGuid[$x], $item);
$item = str_replace("~~~ItemPubLongDate~~~", date($LongDateFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubShortDate~~~", date($ShortDateFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubLongTime~~~", date($LongTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubShortTime~~~", date($ShortTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemEnclosureUrl~~~", $rss_parser->ItemEnclosureURL[$x], $item);
$item = str_replace("~~~ItemAuthor~~~", $rss_parser->ItemAuthor[$x], $item);
$allitems .= $item;
}
}
} else {
for ($x = 0; $x < $loop_limit; $x++) {
$item = str_replace("~~~ItemTitle~~~", $rss_parser->ItemTitle[$x], $block1);
$item = str_replace("~~~ItemDescription~~~", $rss_parser->ItemDescription[$x], $item);
$item = str_replace("~~~ItemContentEncoded~~~", $rss_parser->ItemContentEncoded[$x], $item);
$item = str_replace("~~~ItemLink~~~", $rss_parser->ItemLink[$x], $item);
$item = str_replace("~~~ItemPubDate~~~", $rss_parser->ItemPubDate[$x], $item);
$item = str_replace("~~~ItemGuid~~~", $rss_parser->ItemGuid[$x], $item);
$item = str_replace("~~~ItemPubLongDate~~~", date($LongDateFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubShortDate~~~", date($ShortDateFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubLongTime~~~", date($LongTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubShortTime~~~", date($ShortTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemEnclosureUrl~~~", $rss_parser->ItemEnclosureURL[$x], $item);
$item = str_replace("~~~ItemAuthor~~~", $rss_parser->ItemAuthor[$x], $item);
$allitems .= $item;
$x++;
if ($x < $loop_limit) {
//
// This is at least one more item so use the Alternate definition
//
$item = str_replace("~~~ItemTitle~~~", $rss_parser->ItemTitle[$x], $block2);
$item = str_replace("~~~ItemDescription~~~", $rss_parser->ItemDescription[$x], $item);
$item = str_replace("~~~ItemContentEncoded~~~", $rss_parser->ItemContentEncoded[$x], $item);
$item = str_replace("~~~ItemLink~~~", $rss_parser->ItemLink[$x], $item);
$item = str_replace("~~~ItemPubDate~~~", $rss_parser->ItemPubDate[$x], $item);
$item = str_replace("~~~ItemGuid~~~", $rss_parser->ItemGuid[$x], $item);
$item = str_replace("~~~ItemPubLongDate~~~", date($LongDateFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubShortDate~~~", date($ShortDateFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubLongTime~~~", date($LongTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemPubShortTime~~~", date($ShortTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item);
$item = str_replace("~~~ItemEnclosureUrl~~~", $rss_parser->ItemEnclosureURL[$x], $item);
$item = str_replace("~~~ItemAuthor~~~", $rss_parser->ItemAuthor[$x], $item);
$allitems .= $item;
}
}
}
$template = str_replace("~~~BeginItemsRecord~~~".$WholeBlock."~~~EndItemsRecord~~~", $allitems, $template);
}
}
}

// Since ' is not HTML, but is XML convert.
$template = str_replace("'", "'", $template);

echo $template;

?>
Find all posts by this user
Quote this message in a reply
11-10-2005, 05:30 AM
Post: #9
PHP Include
I'm sorry, but I can't see what the problem is. Does the script function on its own (when it is not being processed as an included file)?

---------------
Simon Jessey
Keystone Websites | si-blog
Visit this user's website Find all posts by this user
Quote this message in a reply
11-17-2005, 12:39 AM
Post: #10
PHP Include
The script doesn't function on its own. The only purpose it serves is to grab an rss feed and convert the contents into html using a template in a .html file.

Its very strange as I have had the exact same code working on a site hosted on a different provide. This is starting to drive me nuts.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump: