oya Skrevet 2. september 2009 Del Skrevet 2. september 2009 Hei! Noen som kan hjelpe meg med et par små problem. Har brukt ereg_replace til dette før, men ser at den funksjonen skal utfases, og med tanke på at den ikke har funket hundre prosent slik jeg vil, har jeg tenkt å bytte ut. Skal bruke dette hovedsakelig i en gjestebok. Før teksten skrives ut på skjermen, vil jeg gå igjennom teksten å finne alle linker (starter på http:// eller www.) og lage dem klikkbare med target="_blank". I tillegg vil jeg at teksten som vises (altså <a href="link">teksten</a>) kan begrenses til så så mange tegn. Jeg vil også ha en funksjon som kjøres før den ovenstående, som sjekker etter linker (som starter på http:// eller www) som ender på .jpg eller .gif. Disse vil jeg skal gjøres om til img tag, slik at bildene vises på skjermen. Disse bildene skal vises i en begrenset størrelse, med mulighet for å klikke på disse, og så få opp bildet fra sin opprinnelige plassering, i et nytt vindu... Lenke til kommentar
AlecTBM Skrevet 2. september 2009 Del Skrevet 2. september 2009 Holder på å lage en funksjon til deg, men jeg er litt usikker på hva du mener med å bruke teksten i linken. Snakker vi om hele teksten? Lenke til kommentar
oya Skrevet 2. september 2009 Forfatter Del Skrevet 2. september 2009 Altså, dersom linken er over så så mange tegn vil html-koden bli slik, om man eksempelvis har en begrensning på 25 tegn: <a href="https://www.diskusjon.no/index.php?showtopic=1148339" target="_blank">https://www.diskusjon.no/i...</a> Lenke til kommentar
AlecTBM Skrevet 2. september 2009 Del Skrevet 2. september 2009 Aaah Skjønner Gi meg 10-20 minutter så har du den her. Lenke til kommentar
AlecTBM Skrevet 2. september 2009 Del Skrevet 2. september 2009 <?php function replaceUrls($str) { $str = preg_replace("/(\A|[^=\]'\"a-zA-Z0-9])(www\.[^<>\s()]+)/i",'\1http://\2\3',$str); //Convert www to http:// $replace = "/(\A|[^=\]'\"a-zA-Z0-9])((http|ftp|https|ftps|irc):\/\/[^<>\s()]+)/i"; $str = preg_replace_callback($replace,'callbackUrl' ,$str); return $str; } //Callback url function callbackUrl($input) { $info = pathinfo($input[2]); //Get file extension $ext = array('jpg','jpeg','gif','png','svg'); if(in_array(strtolower($info['extension']),$ext)) { //If image extension, print image return ' <a href="'.$input[2].'" target="_blank"><img src="'.$input[2].'"></a>'; } else { //If link, print link if(strlen($input[2]) > 30) { $showLink = substr($input[2],0,30).'....'; } else { $showLink = $input[2]; } return ' <a href="'.$input[2].'" target="_blank">'.$showLink.'</a>'; } } //Example echo replaceUrls('tekst her www.url.no/jalla/index.gif mer tekst http://url.no/ enda mer tekst'); ?> Denne skal funke Lenke til kommentar
oya Skrevet 2. september 2009 Forfatter Del Skrevet 2. september 2009 Aiai. Skal teste den med en gang. Tuusen takk Lenke til kommentar
oya Skrevet 2. september 2009 Forfatter Del Skrevet 2. september 2009 Funket perfekt. Tusen takk Lenke til kommentar
AlecTBM Skrevet 2. september 2009 Del Skrevet 2. september 2009 Husk å klikk på løst knappen Lenke til kommentar
oya Skrevet 2. september 2009 Forfatter Del Skrevet 2. september 2009 Vel, ser ut til å være en bitteliten bug. Når man har linker som består av både http:// og www, så blir linken eksempelvis slik: <a href="http://http://www.hw.no" target="_blank">http://http://www.hw.no</a> Lenke til kommentar
AlecTBM Skrevet 2. september 2009 Del Skrevet 2. september 2009 (endret) hmm skal ta en titt Okey, tenkt litt feil i regexp bytt ut $str = preg_replace("/(\A|[^=\]'\"a-zA-Z0-9])(www\.[^<>\s()]+)/i",'\1http://\2\3',$str); med $str = preg_replace("/([ \t]|^)www\./im", "\\1http://www.", $str); Endret 2. september 2009 av AlecTBM Lenke til kommentar
oya Skrevet 2. september 2009 Forfatter Del Skrevet 2. september 2009 Perfekt Takker og bukker... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå