Heb op dit moment deze regex om URL's automatisch klikbaar te maken: (((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)
Goed, dat werkt, maar gezien er ook links in een object staan (youtube bijvoorbeeld) worden deze ook omgevormd.

Iemand een idee hoe ik voorkom dat deze ook omgevormd worden?

Hieronder het stukje code wat ik nu gebruik.

$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', 
    '<a href="\\1" target="_blank">\\1</a>', $text);


Object van youtube

<object width="420" height="260"><param name="movie" value="http://www.youtube.com/v/$1&hl=en&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/$1&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="260"></embed></object>


Alvast bedankt!
Ik ben hier niet echt goed in, maar even melden dat je deze function niet meer moet gebruiken.
Warning

This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

Gebruik preg_replace()
Ik zou er een function van maken die alleen geld bij een bepaalde variabele.
Bijvoorbeeld:
<?php

function link();
if ($global == 1) {
$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
'<a href="\\1" target="_blank">\\1</a>', $text);
}
?>

En dan door je file heen de global veranderen waar nodig.

$global = 1;
content content content
$global = 0;
youtube embed
$global = 1;

Denk dat het met wat aanpassingen wel moet werken!
Sorry maar dat is geen oplossing natuurlijk ;)
Ik ben het hele reactiesysteem overhoop aan het gooien om BBcodes te integreren. Zal een stuk beter werken ;)

Reageren