Trim af url'er
Hej.Jeg sidder lige og leger med et lille php script.
Jeg har nogenlunde fået det til at virke. Men det må kunne kodes smartere. Håber der er nogle der har et forslag.
Det jeg gerne vil er at når folk søger på min side efter en url adresse. Filtere scriptet sådan at jeg får en variabel med kun domænet og en variabel med hele url'en.
For eksempel:
Hvis man søger på:
http://www.eksperten.dk/spm/Programmering/Script/PHP/opret
Får jeg værdierne:
eksperten.dk
eksperten.dk/spm/Programmering/Script/PHP/opret
Hvis man søger på en url med et subdomæne:
http://test.eksperten.dk/spm/Programmering/Script/PHP/opret
Får man værdierne:
eksperten.dk
test.eksperten.dk/spm/Programmering/Script/PHP/opret
Hvis man bare søger på et domaine:
http://eksperten.dk eller http://www.eksperten.dk
Får man værdierne:
eksperten.dk
eksperten.dk
Min Kode ser sådan her ud, jeg tror også jeg har et problem hvis søger efter en url med æøå i:
<form name="form" action="trim.php" method="get">
http:// <input type="text" name="q" />
<input type="submit" name="Submit" value="Search" />
</form>
<?php
function getholePath($url)
{
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === FALSE)
{
return false;
}
/*** get the url parts ***/
$parts = parse_url($url);
/*** return the host domain ***/
//return $parts['path'];
return $parts['host'].$parts['path'];
//return $parts['scheme'].'://'.$parts['host'];
}
function getDomain($url)
{
function getsearchDomain($url)
{
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === FALSE)
{
return false;
}
/*** get the url parts ***/
$parts = parse_url($url);
/*** return the host domain ***/
return $parts['host'];
//return $parts['scheme'].'://'.$parts['host'];
}
$domainStr = getSearchDomain($url);
$arr = (explode('.', getSearchDomain($url), -1));
if (count($arr)>1)
{
$domainStr = substr(getSearchDomain($url),strpos(getSearchDomain($url),".")+1);
}
return $domainStr;
}
// Get the search variable from URL
$var = $_GET['q'];
$trimmed = trim($var); //trim whitespace from the stored variable
$trimmeddomain = $trimmed;
$trimmedurl = $trimmed;
if ($trimmed == "")
{
echo "<p>Please enter a search...</p>";
exit;
}
// check for a search parameter
if (!isset($var))
{
echo "<p>We dont seem to have a search parameter!</p>";
exit;
}
//tjekker op der er http:// foran søgningen
if (preg_match(" /^http:\/\// ", $trimmed))
{
$trimmed = $trimmed;
}
else
{
$trimmed ="http://".$trimmed;
}
$trimmeddomain = getDomain($trimmed);
$trimmedurl = getholePath($trimmed);
if (preg_match(" /^www./ ", $trimmedurl))
{
$trimmedurl = substr($trimmedurl,strpos($trimmedurl,"www")+4);
}
echo $trimmeddomain;
echo "<br /><br />";
echo $trimmedurl;
?>