Uname: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
Software: Apache
PHP version: 5.6.40 [ PHP INFO ] PHP os: Linux
Server Ip: 217.160.0.194
Your Ip: 216.73.216.227
User: u72294154 (9179942) | Group: ftpusers (600)
Safe Mode: OFF
Disable Function:
NONE

name : auxiliares.php
<?
error_reporting(E_ALL);
$archivos_xml = array(XML_FILE_ASOCIACION);


/* ACTUALIZAR PAISES */
function paises($xml){
	echo '<h2>Actualizando  paises...........</h2><br /><p>';
	
	// $xml = simplexml_load_file($archivo);
	$paises = array();
	
	/* Recorremos el xml en busca de todos los paises */
	foreach($xml->inmueble as $inmueble){
		// echo (string)$inmueble->pais . " / Decode :". html_entity_decode((string)$inmueble->pais,ENT_QUOTES,'UTF-8');
		// return true;
		if(!in_array((string)$inmueble->pais,$paises) && trim((string)$inmueble->pais) != ''){
			$paises[] = utf8_encode((string)$inmueble->pais);
		}
	}
	
	$total = 0;
	
	if(!empty($paises)){
		$total = 0;
		foreach($paises as $pais){
			$pais = str_replace(array('&ntilde;','&Ntilde;'),array('ñ','Ñ'),$pais); // "Apaño"
			$query = mysql_query("SELECT id FROM paises WHERE nombre = '$pais'");
			
			if(mysql_num_rows($query) == 0 ){
				@mysql_query("INSERT INTO paises (nombre) VALUES ('$pais')");
				if(!mysql_error()){
					echo "<br />Se ha insertado: <em>$pais</em><br />";
					$total++;
					}
				else{
					echo "<br />Se ha producido un error al insertar: <em>$pais</em><br />";
				}
			}
			
		}
	}
	
	echo "<br />Se han insertado $total pais/es<br /></p>";
}

/* ACTUALIZAR PROVINCIAS */

function provincias($xml){
	echo '<h2>Actualizando  provincias...........</h2><br /><p>';
	
	// $xml = simplexml_load_file($archivo);
	$provincias = array();
	
	/* Recorremos el xml en busca de todas las provincias */
	// foreach($xml->inmueble as $inmueble){
		// if(!in_array((string)$inmueble->provincia,$provincias) && trim((string)$inmueble->provincia) != ''){
			// // $provincias[] = array('nombre'=>mb_convert_encoding((string)$inmueble->provincia, 'UTF-8','ISO-8859-1'),'pais'=>mb_convert_encoding((string)$inmueble->pais, 'UTF-8','ISO-8859-1'));
			// $provincias[] = array('nombre'=>(string)$inmueble->provincia,'pais'=>(string)$inmueble->pais);
		// }
	// }
	$rootElement = 'inmuebles';
	$element = 'inmueble';
	while ($xml->read()) {
		if ($xml->localName == $element && $xml->nodeType == XMLReader::ELEMENT) {
			
			$inmueble = simplexml_load_string($xml->readOuterXml(),'SimpleXMLElement',LIBXML_NOCDATA);
			
			if(!in_array((string)$inmueble->provincia,$provincias) && trim((string)$inmueble->provincia) != ''){
				// $provincias[] = array('nombre'=>mb_convert_encoding((string)$inmueble->provincia, 'UTF-8','ISO-8859-1'),'pais'=>mb_convert_encoding((string)$inmueble->pais, 'UTF-8','ISO-8859-1'));
				$provincias[] = array('nombre'=>(string)$inmueble->provincia,'pais'=>(string)$inmueble->pais);
			}
		}
	}
	
	$total = 0;
	
	if(!empty($provincias)){
		$total = 0;
		foreach($provincias as $provincia){
			
			$idpais = null;
			
			$query = mysql_query("SELECT id FROM paises WHERE nombre = '".html_entity_decode((string)$inmueble->pais,ENT_QUOTES,'UTF-8')."'");
			
			if(mysql_num_rows($query) == 0 ){
				echo "<br /><em>Debe actualizar paises</em>";
				continue;
			}
			else{
				$idpais = mysql_result($query,0);
			}
			
			$query = mysql_query("SELECT id FROM provincias WHERE nombre = '{$provincia['nombre']}'");
			
			if(mysql_num_rows($query) == 0 ){
				@mysql_query("INSERT INTO provincias (id_pais,nombre) VALUES ('$idpais','{$provincia['nombre']}')");
				if(!mysql_error()){
					echo "<br />Se ha insertado: <em>{$provincia['nombre']}</em><br />";
					$total++;
					}
				else{
					echo "<br />Se ha producido un error al insertar: <em>{$provincia['nombre']}</em><br />";
				}
			}
			
		}
	}
	
	echo "<br />Se han insertado $total provincia/s<br /></p>";
}

/* ACTUALIZAR ZONAS */

function zonas($xml){
	echo '<h2>Actualizando  zonas...........</h2><br /><p>';
	
	// $xml = simplexml_load_file($archivo);
	$zonas = array();
	$zonasPoblacionesProvincia = array();
	/* Recorremos el xml en busca de todas las zonas */
	// foreach($xml->inmueble as $inmueble){
		// if(!in_array((string)$inmueble->zona,$zonas) && trim((string)$inmueble->zona) != ''){
			// // $zonas[] = array('nombre'=>mb_convert_encoding((string)$inmueble->provincia, 'UTF-8','ISO-8859-1'),'pais'=>mb_convert_encoding((string)$inmueble->pais, 'UTF-8','ISO-8859-1'));
			// $zonas[] = array('nombre'=>(string)$inmueble->zona,'poblacion'=>$inmueble->poblacion);
		// }
	// }
	
	$rootElement = 'inmuebles';
	$element = 'inmueble';
	while ($xml->read()) {
		if ($xml->localName == $element && $xml->nodeType == XMLReader::ELEMENT) {
 
			$inmueble = simplexml_load_string($xml->readOuterXml(),'SimpleXMLElement',LIBXML_NOCDATA);
			
			$prov = (string)$inmueble->provincia;
			$pob = (string)$inmueble->poblacion;
			
			if(!array_key_exists($prov,$zonasPoblacionesProvincia)){
				$zonasPoblacionesProvincia[$prov] = array();
			}
			if(!array_key_exists($pob,$zonasPoblacionesProvincia[$prov])){
				$zonasPoblacionesProvincia[$prov][$pob] = array();
			}
	
			if(!in_array((string)$inmueble->zona,$zonasPoblacionesProvincia[$prov][$pob]) && trim((string)$inmueble->zona) != ''){
				// $zonas[] = array('nombre'=>mb_convert_encoding((string)$inmueble->provincia, 'UTF-8','ISO-8859-1'),'pais'=>mb_convert_encoding((string)$inmueble->pais, 'UTF-8','ISO-8859-1'));
				$zonas[] = array('nombre'=>(string)$inmueble->zona,'poblacion'=>(string)$inmueble->poblacion,'provincia'=>(string)$inmueble->provincia);
				$zonasPoblacionesProvincia[$prov][$pob][] = (string)$inmueble->zona;
			}
		}
	}
	
	$total = 0;
	
	if(!empty($zonas)){
		$total = 0;
		foreach($zonas as $zona){
			
			$idpoblacion = null;
			// echo "SELECT id FROM poblaciones WHERE nombre LIKE '{$zona['poblacion']}'<br />";
			// $query = mysql_query("SELECT id FROM poblaciones WHERE nombre LIKE '{$zona['poblacion']}'");
			$query = mysql_query("SELECT id FROM provincias WHERE nombre LIKE '{$zona['provincia']}'");
			
			if(mysql_num_rows($query) == 0 ){
				echo "<br /><em>Debe actualizar provincias</em>";
				continue;
			}
			else{
				$idprovincia = mysql_result($query,0);
			}
			
			$query = mysql_query("SELECT id FROM poblaciones WHERE nombre = '{$zona['poblacion']}' AND id_provincia = '$idprovincia'");
			
			
			if(mysql_num_rows($query) == 0 ){
				echo "<br /><em>Debe actualizar poblaciones</em>";
				continue;
			}
			else{
				$idpoblacion = mysql_result($query,0);
			}
			
			$query = mysql_query("SELECT id FROM zonas WHERE nombre = '{$zona['nombre']}' AND id_poblacion = '$idpoblacion'");
			
			if(mysql_num_rows($query) == 0 ){
				@mysql_query("INSERT INTO zonas (id_poblacion,nombre) VALUES ('$idpoblacion','{$zona['nombre']}')");
				if(!mysql_error()){
					echo "<br />Se ha insertado: <em>{$zona['nombre']}</em><br />";
					$total++;
					}
				else{
					echo "<br />Se ha producido un error al insertar: <em>{$zona['nombre']}</em><br />";
				}
			}
			
		}
	}
	
	echo "<br />Se han insertado $total zona/s<br /></p>";
}

/* ACTUALIZAR POBLACIONES */

function poblaciones($xml){
	echo '<h2>Actualizando  poblaciones...........</h2><br /><p>';
	
	// $xml = simplexml_load_file($archivo);
	$poblaciones = array();
	$poblacionesProvincia = array();
	/* Recorremos el xml en busca de todas las poblaciones */
	// foreach($xml->inmueble as $inmueble){
		// if(!in_array((string)$inmueble->poblacion,$poblaciones) && trim((string)$inmueble->poblacion) != ''){
			// // $poblaciones[] = array('nombre'=>mb_convert_encoding((string)$inmueble->provincia, 'UTF-8','ISO-8859-1'),'pais'=>mb_convert_encoding((string)$inmueble->pais, 'UTF-8','ISO-8859-1'));
			// $poblaciones[] = array('nombre'=>(string)$inmueble->poblacion,'provincia'=>(string)$inmueble->provincia);
		// }
	// }
	
	$rootElement = 'inmuebles';
	$element = 'inmueble';
	while ($xml->read()) {
		if ($xml->localName == $element && $xml->nodeType == XMLReader::ELEMENT) {
			
			$inmueble = simplexml_load_string($xml->readOuterXml(),'SimpleXMLElement',LIBXML_NOCDATA);
			$prov = (string)$inmueble->provincia;
			
			if(empty($prov)){
				continue;
			}
			
			if(!array_key_exists($prov,$poblacionesProvincia)){
				$poblacionesProvincia[$prov] = array();
			}
			
			if(!in_array((string)$inmueble->poblacion,$poblacionesProvincia[$prov]) && trim((string)$inmueble->poblacion) != ''){
				// $poblaciones[] = array('nombre'=>mb_convert_encoding((string)$inmueble->provincia, 'UTF-8','ISO-8859-1'),'pais'=>mb_convert_encoding((string)$inmueble->pais, 'UTF-8','ISO-8859-1'));
				$poblaciones[] = array('nombre'=>(string)$inmueble->poblacion,'provincia'=>(string)$inmueble->provincia);
				$poblacionesProvincia[$prov][] = (string)$inmueble->poblacion;
			}
		}
	}
	
	// echo '<pre>';
	// // print_r($poblaciones);
	// print_r($poblacionesProvincia);
	// echo '</pre>';
	// die;
	$total = 0;
	
	if(!empty($poblaciones)){
		$total = 0;
		foreach($poblaciones as $poblacion){
			
			$idprovincia = null;
			$idzona = null;
			
			// if($poblacion['nombre'] == 'Queveda'){
				// print_r($poblacion);
				// die;
			// }
			
			$query = mysql_query("SELECT id FROM provincias WHERE nombre LIKE '{$poblacion['provincia']}'");
			
			if(mysql_num_rows($query) == 0 ){
				echo "<br /><em>Debe actualizar provincias</em>";
				continue;
			}
			else{
				$idprovincia = mysql_result($query,0);
			}
			
			
			$query = mysql_query("SELECT id FROM poblaciones WHERE nombre LIKE '{$poblacion['nombre']}' AND id_provincia = '$idprovincia'");
			
			if(mysql_num_rows($query) == 0 ){
				@mysql_query("INSERT INTO poblaciones (id_provincia,nombre) VALUES ('$idprovincia','{$poblacion['nombre']}')");
				if(!mysql_error()){
					echo "<br />Se ha insertado: <em>{$poblacion['nombre']}</em><br />";
					$total++;
				}
				else{
					echo "<br />Se ha producido un error al insertar: <em>{$poblacion['nombre']}</em><br />";
				}
			}
			
		}
	}
	
	echo "<br />Se han insertado $total poblacion/es<br /></p>";
}

/* ACTUALIZAR TIPOS DE VIA */

function tipos_de_via($xml){
	echo '<h2>Actualizando  tipos_de_via...........</h2><br /><p>';
	
	// $xml = simplexml_load_file($archivo);
	$tipos_de_via = array();
	
	/* Recorremos el xml en busca de todos los tipos_de_via */
	// foreach($xml->inmueble as $inmueble){
		// if(!in_array((string)$inmueble->direccion_tipo_via,$tipos_de_via) && trim((string)$inmueble->direccion_tipo_via) != ''){
			// $tipos_de_via[] = (string)$inmueble->direccion_tipo_via;
		// }
	// }
	
	$rootElement = 'inmuebles';
	$element = 'inmueble';
	while ($xml->read()) {
		if ($xml->localName == $element && $xml->nodeType == XMLReader::ELEMENT) {
 
			$inmueble = simplexml_load_string($xml->readOuterXml(),'SimpleXMLElement',LIBXML_NOCDATA);
			if(!in_array((string)$inmueble->direccion_tipo_via,$tipos_de_via) && trim((string)$inmueble->direccion_tipo_via) != ''){
				$tipos_de_via[] = (string)$inmueble->direccion_tipo_via;
			}
		}
		
	}
	
	$total = 0;
	
	if(!empty($tipos_de_via)){
		$total = 0;
		foreach($tipos_de_via as $tipo_de_via){
			$query = mysql_query("SELECT id FROM tipos_de_via WHERE nombre = '$tipo_de_via'");
			
			if(mysql_num_rows($query) == 0 ){
				@mysql_query("INSERT INTO tipos_de_via (nombre) VALUES ('$tipo_de_via')");
				if(!mysql_error()){
					echo "<br />Se ha insertado: <em>$tipo_de_via</em><br />";
					$total++;
					}
				else{
					echo "<br />Se ha producido un error al insertar: <em>$tipo_de_via</em><br />";
				}
			}
			
		}
	}
	
	echo "<br />Se han insertado $total tipo/s de via<br /></p>";
}


/* ACTUALIZAR TIPOS DE INMUEBLE */
function tipos_de_inmueble($xml){
	echo '<h2>Actualizando  tipos_inmueble...........</h2><br /><p>';
	
	// $xml = simplexml_load_file($archivo);
	$tipos_inmueble = array();
	
	/* Recorremos el xml en busca de todos los tipos_inmueble */
	// foreach($xml->inmueble as $inmueble){
		// if(!in_array((string)$inmueble->tipo,$tipos_inmueble) && trim((string)$inmueble->tipo) != ''){
			// $tipos_inmueble[] = (string)$inmueble->tipo;
		// }
	// }
	
	$rootElement = 'inmuebles';
	$element = 'inmueble';
	while ($xml->read()) {
		if ($xml->localName == $element && $xml->nodeType == XMLReader::ELEMENT) {
 
			$inmueble = simplexml_load_string($xml->readOuterXml(),'SimpleXMLElement',LIBXML_NOCDATA);
			if(!in_array((string)$inmueble->tipo,$tipos_inmueble) && trim((string)$inmueble->tipo) != ''){
				$tipos_inmueble[] = (string)$inmueble->tipo;
			}
		}
		
	}
	
	$total = 0;
	
	if(!empty($tipos_inmueble)){
		$total = 0;
		foreach($tipos_inmueble as $tipo_inmueble){
			$query = mysql_query("SELECT id FROM tipos_inmueble WHERE nombre = '$tipo_inmueble'");
			
			if(mysql_num_rows($query) == 0 ){
				@mysql_query("INSERT INTO tipos_inmueble (nombre) VALUES ('$tipo_inmueble')");
				if(!mysql_error()){
					echo "<br />Se ha insertado: <em>$tipo_inmueble</em><br />";
					$total++;
					}
				else{
					echo "<br />Se ha producido un error al insertar: <em>$tipo_inmueble</em><br />";
				}
			}
			
		}
	}
	
	// print_r($tipos_inmueble);
	
	echo "<br />Se han insertado $total tipo/s de inmueble<br /></p>";
}

/* ACCIONES */
foreach($archivos_xml as $indice=>$archivo){
	// echo $archivo;
	// $xml = simplexml_load_file($archivo);
	echo "$archivo<br />";
	
	// $xml = simplexml_load_file($archivo,'SimpleXMLElement', LIBXML_NOCDATA);
	
	
	// var_dump($xml);
	// Alternativa cuando no es posible carga de xml mediante URL 
	// $ch = curl_init($archivo);
	// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Sacamos la salidad directamente como string
	// $feed = curl_exec($ch);
	// curl_close($ch);
	
	// $xml = simplexml_load_string($feed);
	// unset($feed);
	
	// paises($xml);
	// provincias($xml);
	$xml = new XMLReader();
	$xml->open($archivo);
	provincias($xml);
	
	$xml = new XMLReader();
	$xml->open($archivo);
	poblaciones($xml);
	
	$xml = new XMLReader();
	$xml->open($archivo);
	zonas($xml);

	$xml = new XMLReader();
	$xml->open($archivo);
	tipos_de_via($xml);

	$xml = new XMLReader();
	$xml->open($archivo);
	tipos_de_inmueble($xml);
}							
?>
© 2026 GrazzMean