Jump to content


Photo

Calling Script In Page Build


  • Please log in to reply
No replies to this topic

#1 0207100

0207100
  • Members
  • Pip
  • Newbie
  • 5 posts

Posted 10 March 2006 - 11:46 AM


I am wanting to run this scrip so that the code is called as an include_once and then get the a variable and finally prints the items.

The page is built by calling 5 different dynamic sections.

My Thought was I could include this in the header of the page as a php file:


<?php
function GetXMLTree ($xmldata)
{
    // we want to know if an error occurs
    ini_set ('track_errors', '1');

    $xmlreaderror = false;

    $parser = xml_parser_create ('ISO-8859-1');
    xml_parser_set_option ($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parser_set_option ($parser, XML_OPTION_CASE_FOLDING, 0);
    if (!xml_parse_into_struct ($parser, $xmldata, $vals, $index)) {
        $xmlreaderror = true;
        echo "error";
    }
    xml_parser_free ($parser);

    if (!$xmlreaderror) {
        $result = array ();
        $i = 0;
        if (isset ($vals [$i]['attributes']))
            foreach (array_keys ($vals [$i]['attributes']) as $attkey)
            $attributes [$attkey] = $vals [$i]['attributes'][$attkey];

        $result [$vals [$i]['tag']] = array_merge ($attributes, GetChildren ($vals, $i, 'open'));
    }

    ini_set ('track_errors', '0');
    return $result;
}

function GetChildren ($vals, &$i, $type)
{
    if ($type == 'complete') {
        if (isset ($vals [$i]['value']))
            return ($vals [$i]['value']);
        else
            return '';
    }

    $children = array (); // Contains node data

    /* Loop through children */
    while ($vals [++$i]['type'] != 'close') {
        $type = $vals [$i]['type'];
        // first check if we already have one and need to create an array
        if (isset ($children [$vals [$i]['tag']])) {
            if (is_array ($children [$vals [$i]['tag']])) {
                $temp = array_keys ($children [$vals [$i]['tag']]);
                // there is one of these things already and it is itself an array
                if (is_string ($temp [0])) {
                    $a = $children [$vals [$i]['tag']];
                    unset ($children [$vals [$i]['tag']]);
                    $children [$vals [$i]['tag']][0] = $a;
                }
            } else {
                $a = $children [$vals [$i]['tag']];
                unset ($children [$vals [$i]['tag']]);
                $children [$vals [$i]['tag']][0] = $a;
            }

            $children [$vals [$i]['tag']][] = GetChildren ($vals, $i, $type);
        } else
            $children [$vals [$i]['tag']] = GetChildren ($vals, $i, $type);
        // I don't think I need attributes but this is how I would do them:
        if (isset ($vals [$i]['attributes'])) {
            $attributes = array ();
            foreach (array_keys ($vals [$i]['attributes']) as $attkey)
            $attributes [$attkey] = $vals [$i]['attributes'][$attkey];
            // now check: do we already have an array or a value?
            if (isset ($children [$vals [$i]['tag']])) {
                // case where there is an attribute but no value, a complete with an attribute in other words
                if ($children [$vals [$i]['tag']] == '') {
                    unset ($children [$vals [$i]['tag']]);
                    $children [$vals [$i]['tag']] = $attributes;
                }
                // case where there is an array of identical items with attributes
                elseif (is_array ($children [$vals [$i]['tag']])) {
                    $index = count ($children [$vals [$i]['tag']]) - 1;
                    // probably also have to check here whether the individual item is also an array or not or what... all a bit messy
                    if ($children [$vals [$i]['tag']][$index] == '') {
                        unset ($children [$vals [$i]['tag']][$index]);
                        $children [$vals [$i]['tag']][$index] = $attributes;
                    }
                    $children [$vals [$i]['tag']][$index] = array_merge ($children [$vals [$i]['tag']][$index], $attributes);
                } else {
                    $value = $children [$vals [$i]['tag']];
                    unset ($children [$vals [$i]['tag']]);
                    $children [$vals [$i]['tag']]['value'] = $value;
                    $children [$vals [$i]['tag']] = array_merge ($children [$vals [$i]['tag']], $attributes);
                }
            } else
                $children [$vals [$i]['tag']] = $attributes;
        }
    }

    return $children;
}
$url = "http://text.dynamicmedia.us/ads/xml_feed.php?p_id=1002&ad_count=10&channel=1&doc_offset=0&keyword=creditcards&limited=0&uip=82.35.20.94&referring_page=http://dynamicmedia.us/index.php"; //URL of the XML FEED

$contents = file_get_contents($url);

$data = GetXMLTree ($contents);


function print_ad_item($item) {
        echo '<p>';
        echo $item['Heading']."<br />\n";
        echo $item['URI']."<br />\n";
        echo $item['Description']."<br />\n";
        echo $item['URL'];
        echo '</p>';
}

function print_line_item($item) {
    echo '<p>';
    echo "<a href=\"{$item['URI']}\" target =\"_blank\" onMouseOver=\"window.status='{$item['URL']}'; return true;\"onMouseOut=\"window.status=''; return true;\">{$item['Heading']}</a><br />\n";
    echo '<br />';

}

function print_textad_item($item) {
    echo '<p>';
    echo "<a href=\"{$item['URI']}\" target =\"_blank\" onMouseOver=\"window.status='{$item['URL']}'; return true;\"onMouseOut=\"window.status=''; return true;\">{$item['Heading']}</a><br />\n";
    echo $item['Description']."<br />\n";
    echo '</p>';
}

$textad = $data['Ads']['Listing'];

?>



The line:
$url = "http://text.dynamicmedia.us/ads/xml_feed.php?p_id=1002&ad_count=10&channel=1&doc_offset=0&keyword=creditcards&limited=0&uip=82.35.20.94&referring_page=http://dynamicmedia.us/index.php"; //URL of the XML FEED

could be inserted in the page as it is built since I need to insert a variable or two - specifically a keyword, the referring page, and the visitors IP address, I thought I could do this outside of the php file i am including in the header. But.... im not sure how that would be done?


Then I wanted to insert the following to print the results into 2 different areas a the dynamically created page.


<?
print_line_item($textad[0]);


print_textad_item($textad[1]);
print_textad_item($textad[2]);
print_textad_item($textad[3]);
print_textad_item($textad[4]);
print_textad_item($textad[5]);
print_textad_item($textad[6]);
print_textad_item($textad[7]);
print_textad_item($textad[8]);
print_textad_item($textad[9]);


?>


The problem I have is i only get an error - no other details. I am a total nuuuubie to php and think im a bit over my head on this one.


Any help will be greatly appreciated.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users