exclude bij preg_replace ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
$inhoud = preg_replace("!(^|[ \n\r\t])((http(s?)://|www\.|http(s?)://'www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)!","\\1[url=\\2]\\2[/url]",$inhoud);
$inhoud = preg_replace('/\[url=(.+?)\]\[\/url\]/is','[url=$1]$1[/url]', $inhoud);
$inhoud = preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/is','<a target="_new" href="$1">####$2####</a>', $inhoud);
$href = preg_replace('/<a target="_new" href="(.*?)">(.*?)<\\/a>/i', '$2',$inhoud);
if (strlen($href) > 50)
{
$inhoud = str_replace ($href,wordwrap($href, 35, " ", 1),$inhoud );
}
Hoi,
Bovenstaande code werkt perfect, iets te perfect eigenlijk want het verkort de source van een image mee. Zou iemand me kunnen vertellen hoe ik ervoor zorg dat dit niet verkort word:
Code (php)
1
$inhoud = '<img id="contentImage" src="http://www.cr-projects.be/uploads/img/onderwerpen/DR_thumb_img.jpg"';
Een oplossing, zou kunnen zijn dat ik de spaties tussen de src verwijder... maar hoe doe ik dat dan weer?
Alvast bedankt !
Gewijzigd op 01/01/1970 01:00:00 door Christophe Rogiers
str_replace(" ", "", $string);
Andere weet ik niet zo snel, nooit goed genoeg verdiept in regular espressions.
Dit gedeelte van je regex heb je helemaal niet nodig. Gebruik trim() om spaties en linebreaks aan het begin of eind van een string te verwijderen...
Verder is me niet helemaal duidelijk wat je probleem nu eigenlijk is?
Blanche schreef op 02.07.2007 12:14:
Mijn probleem zou opgelost zijn als de spaties uit de link van de source worden weggehaald.
Dus:
Code (php)
1
<img id="contentImage" src="http://www.cr-proje cts.be/uploads/img/ onderwerpen/DR_thumb_img.jpg"
Zou dit moeten worden:
Het is wel mogelijk, maar er zal wel een omweg aan vast zitten. Ik denk dat je dan eerst met een preg_match de link zelf moet matchen, vervolgens de spaties uit de link halen en dan met een preg_replace de link moet vervangen.
Blanche schreef op 02.07.2007 18:23:
Maar hoe komen die spaties er in eerste instantie in? Ik denk dat je het het beste daar kunt oplossen...
Het is wel mogelijk, maar er zal wel een omweg aan vast zitten. Ik denk dat je dan eerst met een preg_match de link zelf moet matchen, vervolgens de spaties uit de link halen en dan met een preg_replace de link moet vervangen.
Het is wel mogelijk, maar er zal wel een omweg aan vast zitten. Ik denk dat je dan eerst met een preg_match de link zelf moet matchen, vervolgens de spaties uit de link halen en dan met een preg_replace de link moet vervangen.
de spatis komen er in omdat ik elk woord langer dan 50 karakters in 2 breek...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
$inhoud = preg_replace("!(^|[ \n\r\t])((http(s?)://|www\.|http(s?)://'www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)!","\\1[url=\\2]\\2[/url]",$inhoud);
$inhoud = preg_replace('/\[url=(.+?)\]\[\/url\]/is','[url=$1]$1[/url]', $inhoud);
$inhoud = preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/is','<a target="_new" href="$1">####$2####</a>', $inhoud);
$href = preg_replace('/<a target="_new" href="(.*?)">(.*?)<\\/a>/i', '$2',$inhoud);
if (strlen($href) > 50)
{
$inhoud = str_replace ($href,wordwrap($href, 35, " ", 1),$inhoud );
}
Kan dit nu nietworden aangepast zodat src="link" niet word afgekort?
Alvast bedankt !