El problema se me plantea ahora que los archivos que tengo que subir a la BD tienen un tamaño de 30Mb, por lo cual el tema de meterlo en un array se plantea imposible.
¿Alguna idea de como añadir esa cantidad de información a mi base de datos?
Un saludo a todos y gracias por adelantado.
Alguna idea?
Bueno, al fin encontré un codigo que funciona, lo posteo por si a alguien le sirve:
Código PHP:
<?php
$insideitem = false;
$tag = "";
$nombre = "";
$descripcion = "";
$link = "";
function startElement($parser, $name, $attrs) {
global $insideitem, $tag, $nombre, $descripcion, $link;
if ($insideitem) {
$tag = $name;
} elseif ($name == "ITEM") {
$insideitem = true;
}
}
function endElement($parser, $name) {
global $insideitem, $tag, $title, $description, $link;
if ($name == "ITEM") {
print " Nombre ->".$nombre."<br />";
print " Descripcion ->".$descripcion."<br />";
print " Link ->".$link."<br /><hr />";
$nombre = "";
$descripcion = "";
$link = "";
$insideitem = false;
}
}
function characterData($parser, $data) {
global $insideitem, $tag, $title, $description, $link;
if ($insideitem) {
switch ($tag) {
case "TITLE":
$title .= $data;
break;
case "DESCRIPTION":
$descripcion .= $data;
break;
case "LINK":
$link .= $data;
break;
}
}
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$fp = fopen($file,"r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
?>