Location: PHPKode > projects > WEB-PA > spider/include/funzioni_analisi.php
<?php
/*
In questo sito sono contenute le funzioni di analisi di un url
prepara_url($url)
	Questa funzione serve per frazionare l'url nelle sue varie parti
aggiusta_link($link,$url)
	Questa funzione trasforma il link da qualunque forma (relativo,assoluto) a http://www.pippo.com/ciccio/pluto.php
remove_file_from_url($url)
	Questa funzione trova l'url assoluto e relativo di una risorsa ad esempio da http://www.pippo.com/plutp/index.html estrae http://www.pippo.com/plutp/ (relativo) e http://www.pippo.com/ (assoluto)
aggiusta_link_puntopunto($link,$url_assoluto,$path)
	Questa funzione trova l'url dato un link del tipo ../../eccecc
*/
function prepara_url($url) {
/*
Questa funzione serve per frazionare l'url nelle sue varie parti
*/
	//se non c'รจ il :// metto http://
	if (!strrpos($url, "://")) {
		$url="http://".$url;
	}
	
	$urlparts = parse_url($url);
	if (!isset($urlparts['path'])) {
		$urlparts['path']="/";
	}
	if (!isset($urlparts['host'])) {
		$urlparts['host']="";
	}
	if (!isset($urlparts['query'])) {
		$urlparts['query']="";
	}
	if (!isset($urlparts['scheme'])) {
		$urlparts['scheme'] = "http";
	}

	if ($urlparts['query'] != "")
		$urlparts['path'] .= "?".$urlparts['query'];
	if (!isset ($urlparts['port'])) {
		if ($urlparts['scheme'] == "http") {
			$urlparts['port'] = 80;
		} elseif ($urlparts['scheme'] == "https") {
			$urlparts['port'] = 443;
		}
	}

	if ($urlparts['port'] == 80) {
		$urlparts['portq'] = "";
	} else {
		$urlparts['portq'] = ":".$urlparts['port'];
	}
	return $urlparts;
}

function aggiusta_link($link,$url) {
/*
Questa funzione trasforma il link da qualunque forma (relativo,assoluto) a http://www.pippo.com/ciccio/pluto.php
*/
	$a_url = remove_file_from_url($url);
	if (substr($link, 0, 1) == '/') {
		$link = $a_url['assoluto'].substr($link, 1);
	} elseif (substr($link, 0, 2) == './') {
		$link = $a_url['relativo'].substr($link, 2);
	} elseif (substr($link, 0, 3) == '../') {
		$link = aggiusta_link_puntopunto($link,$a_url['assoluto'],$a_url['path']);
	} elseif (!stristr($link, '://')) {
		$link = $a_url['relativo'].$link;
	}
	return $link;
}


function remove_file_from_url($url) {
/*
Questa funzione trova l'url assoluto e relativo di una risorsa ad esempio da http://www.pippo.com/plutp/index.html estrae http://www.pippo.com/plutp/ (relativo) e http://www.pippo.com/ (assoluto)
*/
	if (!stristr($url, '://')) {
		$url="http://".$url;
	}
	$url_parts = parse_url($url);
	if (!isset($url_parts['path'])) {
		$url_parts['path']="/";
	}
	if (!isset($url_parts['host'])) {
		$url_parts['host']="";
	}
	if (!isset($url_parts['scheme'])) {
		$url_parts['scheme']="http";
	}
	$path = $url_parts['path'];

	$regs = Array ();
	if (eregi('([^/]+)$', $path, $regs)) {
		$file = $regs[1];
		$check = $file.'$';
		$path = eregi_replace($check, "", $path);
	}
	$aurl["relativo"] = $url_parts['scheme']."://".$url_parts['host'].$path;
	$aurl["assoluto"] = $url_parts['scheme']."://".$url_parts['host']."/";
	$aurl["path"] = substr($path,1,-1);
	$aurl["host"] = $url_parts['host'];
	return $aurl;
}

function aggiusta_link_puntopunto($link,$url_assoluto,$path) {
/*
Questa funzione trova l'url dato un link del tipo ../../eccecc
*/
	//Conto di quanto devo risalire
	$n=substr_count($link,"../");
	$a_path=explode("/",$path);
	for($i=0; $i < $n; $i++) {
		array_pop($a_path);
	}
	return $url_assoluto.implode("/", $a_path)."/".substr($link,$n*3);
}


?>
Return current item: WEB-PA