Ciao ragazzi.

All'interno di una pagina php il cui codice è il seguente:

codice:
<?php

class xItem {
  var $xTitle;
  var $xLink;
  var $xDescription;
}

$sTitle = "";
$sLink = "";
$sDescription = "";
$arItems = array();
$itemCount = 0;

$uFile = "rss2.0.xml";
$bDesc = true;
$uFont = "Verdana, Arial, Helvetica, sans-serif";
$uFontSize = "2";

function startElement($parser, $name, $attrs) {
  global $curTag;

  $curTag .= "^$name";

}

function endElement($parser, $name) {
  global $curTag;

  $caret_pos = strrpos($curTag,'^');

  $curTag = substr($curTag,0,$caret_pos);

}

function characterData($parser, $data) { 
  global $curTag; 
  global $sTitle, $sLink, $sDescription;  
  $titleKey = "^RSS^CHANNEL^TITLE";
  $linkKey = "^RSS^CHANNEL^LINK";
  $descKey = "^RSS^CHANNEL^DESCRIPTION";
  if ($curTag == $titleKey) {
    $sTitle = $data;
  }
  elseif ($curTag == $linkKey) {
    $sLink = $data;
  }
  elseif ($curTag == $descKey) {
    $sDescription = $data;
  }

  global $arItems, $itemCount;
  $itemTitleKey = "^RSS^CHANNEL^ITEM^TITLE";
  $itemLinkKey = "^RSS^CHANNEL^ITEM^LINK";
  $itemDescKey = "^RSS^CHANNEL^ITEM^DESCRIPTION";

  if ($curTag == $itemTitleKey) {
    $arItems[$itemCount] = new xItem();     
    $arItems[$itemCount]->xTitle = $data;
		//------- added by badaze
    $arItems[$itemCount]->xLink = "";
		$arItems[$itemCount]->xDescription = "";
  }
  elseif ($curTag == $itemLinkKey) {
    $arItems[$itemCount]->xLink = $data;
		//------- added by badaze		
    $arItems[$itemCount]->xTitle       = "";
		$arItems[$itemCount]->xDescription = "";		
  }
  elseif ($curTag == $itemDescKey) {
    $arItems[$itemCount]->xDescription = $data;
		//------- added by badaze		
    $arItems[$itemCount]->xTitle = "";		
    $arItems[$itemCount]->xLink  = "";		
    $itemCount++;
  }
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
  xml_set_character_data_handler($xml_pars
er, "characterData");
if (!($fp = fopen($uFile,"r"))) {
  die ("could not open RSS for input");
}
while ($data = fread($fp, 4096)) {
  if (!xml_parse($xml_parser, $data, feof($fp))) {
    die(sprintf("XML error: %s at line %d",   xml_error_string(xml_get_error_code($xml
_parser)),   xml_get_current_line_number($xml_parser)
));
  }
}
xml_parser_free($xml_parser);
//--------- added by badaze : creo l'uscita HTML senza visualizzarla
ob_start() ?>
<table width="100" border="0" cellspacing="0" cellpadding="0"> 
 <tr> <td class="news"> 
 <?php 
  for ($i=0;$i<count($arItems);$i++) { 
   $txItem = $arItems[$i]; 
	 if ($txItem->xLink != "") {?> 
	  <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>">
	   <a class="base" href = "<?php echo($txItem->xLink); ?>"><?php 
		  echo($txItem->xTitle); ?> 
		 </a> 
		</font><?php 
	 } // if ($txItem->xLink != "")	
	 if ($bDesc) { ?> 
	  <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>">
	   <?php echo ($txItem->xDescription); ?>
		</font><?php 
	 } echo ("
"); 
	} // for ($i=0;$i<count($arItems);$i++) ?> 
	 </td> 
	</tr> 
</table><?php 
 
 $marquee = ob_get_contents();
 ob_end_clean();
?>
<html>
<head>
<title><?php echo ($sTitle); ?></title>
<meta name = "description" content = "<?php echo ($sDescription); ?>">
<link href="foglio.css" rel="stylesheet" type="text/css">

<style type="text/css">
<!--
.hidden {position:absolute;left:-10000;top:-1000}
-->
</style>


</head>
<body bgcolor = "#FFFFFF">

<textarea id="htext" class="hidden"><? print $marquee ?></textarea>
<script language="JavaScript1.2">

/*
Cross browser Marquee II- © Dynamic Drive (www.dynamicdrive.com)
For full source code, 100's more DHTML scripts, and TOS, visit http://www.dynamicdrive.com
Credit MUST stay intact
*/

//Specify the marquee's width (in pixels)
var marqueewidth="200px"
//Specify the marquee's height
var marqueeheight="150px"
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=2
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=1

//Specify the marquee's content
//Keep all content on ONE line, and backslash any single quotations (ie: that's great):

//-------- added by badaze : assegno il codice HTML alla variabile marquee
var marqueecontent=document.getElementById('htext').value;

////NO NEED TO EDIT BELOW THIS LINE////////////

marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
var actualheight=''
var cross_marquee, ns_marquee

function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.top=parseInt(marqueeheight)+8+"px"
cross_marquee.innerHTML=marqueecontent
actualheight=cross_marquee.offsetHeight
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.top=parseInt(marqueeheight)+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualheight=ns_marquee.document.height
}
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate

function scrollmarquee(){

if (iedom){
if (parseInt(cross_marquee.style.top)>(actualheight*(-1)+8))
cross_marquee.style.top=parseInt(cross_marquee.style.top)-copyspeed+"px"
else
cross_marquee.style.top=parseInt(marqueeheight)+8+"px"
}
else if (document.layers){
if (ns_marquee.top>(actualheight*(-1)+8))
ns_marquee.top-=copyspeed
else
ns_marquee.top=parseInt(marqueeheight)+8
}
}

if (iedom||document.layers){
with (document){
if (iedom){
write('<div style="  position:relative;width:'+marqueewidth+'
 ;height:'+marqueeheight+';overflow:hidde
n" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="  position:absolute;left:0px;top:0px;width
:100%;">')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee">')
write('<layer name="ns_marquee2" width='+marqueewidth+' height='+marqueeheight+' left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
}
}
</script>

</body>
</html>
c'è uno script php che esegue il parsing di un file xml esterno (sono notizie in tempo reale) e poi un dhtml che fa scorrere il risultato del parsing tipo marquee verticale.

Ora mettiamo che voglia ripetere la stessa procedura all'interno della medesima pagina, cambiando il percorso del file xml, in modo da poter inserire un altro blocco di news differenti da un'altro sito, che replicare il codice rinominando tutte le variabili? O c'è un via alternativa?