Dybe links: Fjerne sidste del af URL's
Jeg er med til at drive en website, hvor vi har et større debatforum, og på det sidste har vi oplevet, at folk linker til de danske dagblades online-udgaver, som fx http://www.berlingske.dk/viden/artikel:aid=317576:fid=100100026.Det jeg gerne vil have, er et ereg_replace eller preg_replace-script, der fjerner alt, hvad der står efter selve domænenavnet, hvis domænenavnet findes i array'et $banned_sites[].
Det, jeg selv har fundet frem til, er:
------------------------------
function remove_deep_links($post) {
$banned_sites = array(
'berlingske.dk',
'politiken.dk',
'jp.dk');
for($i = 0; $i < count($banned_sites); $i++) {
$post = ereg_replace("(http://|www.)+($banned_sites[$i])([a-z0-9~#%@&:;=!',_æøå()?/.-+\[\]|*$\^\{\}]+)", "\\1\\2", $post);
}
return $post;
}
------------------------------
Altså, hvis linket er fx http://politiken.dk, www.berlingske.dk eller http://www.jp.dk, så skal den fjerne alt, hvad der evt. står efter selve domænenavnet som i linket øverst på siden vil betyde, at jeg vil have "/viden/artikel:aid=317576:fid=100100026" fjernet.
En ting, der er værd at nævne er, at der tre ting, der kan afslutte en linie: [. ] (punktum efterfulgt af mellemrum), [.\n] (punktum,newline) eller blot [\n] (newline). Og er der flere end disse?
Jeg håber, at der er nogen, der kan hjælpe med spm'et.
Mvh
/Bjørn Amdi Sloth