No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    •  
      CommentAuthorLobo
    • CommentTimeAug 27th 2007
     # 1
    Pues a ver si alguien tiene algo de idea de php, tengo este código que por cuestiones de seguridad me resulta dificil usarlo en el hosting(dreamhost),ya que tiene la función fopen en off, he creado mi propio php.ini pero me da que este script es muy inseguro.
    He leido que esto mismo se puede hacer con la funcion curl, pero ni idea de php:que:

    /*
    Created by Global Syndication's RSS Parser
    http://www.globalsyndication.com/rss-parser
    */
    set_time_limit(0);

    $file = "http://AQUI-VA-LA-URL-A-PARSEAR";

    $rss_channel = array();
    $currently_writing = "";
    $main = "";
    $item_counter = 0;

    function startElement($parser, $name, $attrs) {
    global $rss_channel, $currently_writing, $main;
    switch($name) {
    case "RSS":
    case "RDF:RDF":
    case "ITEMS":
    $currently_writing = "";
    break;
    case "CHANNEL":
    $main = "CHANNEL";
    break;
    case "IMAGE":
    $main = "IMAGE";
    $rss_channel["IMAGE"] = array();
    break;
    case "ITEM":
    $main = "ITEMS";
    break;
    default:
    $currently_writing = $name;
    break;
    }
    }

    function endElement($parser, $name) {
    global $rss_channel, $currently_writing, $item_counter;
    $currently_writing = "";
    if ($name == "ITEM") {
    $item_counter++;
    }
    }

    function characterData($parser, $data) {
    global $rss_channel, $currently_writing, $main, $item_counter;
    if ($currently_writing != "") {
    switch($main) {
    case "CHANNEL":
    if (isset($rss_channel[$currently_writing])) {
    $rss_channel[$currently_writing] .= $data;
    } else {
    $rss_channel[$currently_writing] = $data;
    }
    break;
    case "IMAGE":
    if (isset($rss_channel[$main][$currently_writing])) {
    $rss_channel[$main][$currently_writing] .= $data;
    } else {
    $rss_channel[$main][$currently_writing] = $data;
    }
    break;
    case "ITEMS":
    if (isset($rss_channel[$main][$item_counter][$currently_writing])) {
    $rss_channel[$main][$item_counter][$currently_writing] .= $data;
    } else {
    $rss_channel[$main][$item_counter][$currently_writing] = $data;
    }
    break;
    }
    }
    }

    $xml_parser = xml_parser_create();
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    if (!($fp = fopen($file, "r"))) {
    die("could not open XML 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);


    if (isset($rss_channel["ITEMS"])) {
    if (count($rss_channel["ITEMS"]) > 0) {
    for($i = 0;$i < count($rss_channel["ITEMS"]);$i++) {
    if (isset($rss_channel["ITEMS"][$i]["LINK"])) {
    print ("\n<div class=\"itemtitle\"><a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</a></div>");
    } else {
    print ("\n<div class=\"itemtitle\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</div>");
    }
    print ("<div class=\"itemdescription\">" . $rss_channel["ITEMS"][$i]["DESCRIPTION"] . "</div><br />"); }
    } else {
    print ("No News Found");
    }
    }
    ?>


    :pop2:
    GraciasEl deseo puede ser dominio.