Noja...ich bin heute nacht auf ein interressantes Problem gestossen, es ging darum 2 Urls auf gleichheit zu testen -.- das PRoblem ist übrigens im JEx-Board aufgetreten (ich traue es mich kaum auszusprechen) und ich hab mich mal drangesetzt und ne nette funktion geschrieben....guut es ist eine funktion, sieht nicht schön aus und lässt sich sicher besser machen
hier ist sie:
<?php
function checkUrls($url1,$url2) {
$url1 = parse_url(strtolower(!preg_match('/.*?:\/\/.*?/i',$url1) ? 'http://'.$url1 : $url1));
$url2 = parse_url(strtolower(!preg_match('/.*?:\/\/.*?/i',$url2) ? 'http://'.$url2 : $url2));
return array(
'scheme' => ($url1['scheme'] == $url2['scheme']),
'host' => (str_replace('www.','',$url1['host']) == str_replace('www.','',$url2['host'])),
'user' => ($url1['user'] == $url2['user']),
'pass' => ($url1['pass'] == $url2['pass']),
'path' => ($url1['path'] == $url2['path']),
'query' => ($url1['query'] == $url2['query'])
);
}
$url1 = 'http://www.domain.de/site.php?query';
$url2 = 'www.domain.de/site.php';
print_r(checkUrls($url1,$url2));
?>
das ganze ist recht kurz gehalten, die abfragen sind verkürzte wie man sieht (reicht ja eigentlich aus) und er gibt nur true oder false aus...d.h. wenn das scheme übereinstimmt, host, oder was auch immer, dann gibt er true false aus...gross und kleinschreibung wird nicht beachtet...d.h. er schreibt alles ins kleine am anfang
achja...das "www" wird in der domain rausgeschmissen und daher nicht beachtet
noja....so sieht das immo aus....ich kann nicht viel erklären, ist mehr ein Codeschnipsel, und dafür gbsch hier kein forum -.- deshalb hau ich es hier schnell mit rein