webForumDet fria alternativet

Reg Exp: URL.

1 svar · 339 visningar · startad av D-M_R

D-M_RMedlem sedan aug. 2002115 inlägg
#1

Har ett regexp som gör om [url ] och [/url ] till adress.
men om adressen är för lång så pajjas sidans layout.

$search = array(
"'(\[url\])(.*)(\[\/url\])'Ui",
);

$replace = array(
"<a href=\"\\2\" target=\"_blank\">\\2</a>",
);

$string = preg_replace($search, $replace, $string);

Vill på nå vis göra så själva namnet på länken förkortas.
så om man har en lång adress blir det bara tex
http://www.theverrylongadress.com/mapp/mapp...
eller nått.

AsterixMedlem sedan dec. 1999464 inlägg
#2

Detta funkar

<?
function test($str,$newlen) {
  $oldstr = strlen ($str);
  if ($oldstr > $newlen) {
    return substr ($str, 0, $newlen * 0.7 - 2) ."...". substr ($str, $oldlen - ($newlen * 0.3 + 1));
  }
  return $str;
}

$string = "JAG [url]http://www.test.com[/url] [url]http://www.webhallen.com/admin/hej/asdjkkjehnan/ajksdkj/bilder/temp/hej.php[/url] inget";

$search = array("'(\[url\])(.*)(\[\/url\])'Uie");

$replace = array("'<a href=\"\\2\" target=\"_blank\">'.test('\\2',50).'</a>'");

$string = preg_replace($search, $replace, $string); 

echo $string;
?>

Ändra siffran som nu är 50 till hur lång du vill att den nya strängen ska bli.
För långa blir http://www.test.com/asd...asd/hej.php

Koden blir helt konstig så jag laddade upp den i stället. Du hittar den här: http://www.webhallen.com/emil/regexp_links.phps

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb