exclude bij preg_replace ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Christophe Rogiers

Christophe Rogiers

02/07/2007 04:47:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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)
PHP script in nieuw venster Selecteer het PHP script
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
 
PHP hulp

PHP hulp

01/09/2024 06:25:50
 

02/07/2007 10:25:00
Quote Anchor link
Spaties verwijderen is te simpel:
str_replace(" ", "", $string);

Andere weet ik niet zo snel, nooit goed genoeg verdiept in regular espressions.
 
Joren de Wit

Joren de Wit

02/07/2007 12:14:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
(^|[ \n\r\t])

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?
 
Christophe Rogiers

Christophe Rogiers

02/07/2007 18:18:00
Quote Anchor link
Blanche schreef op 02.07.2007 12:14:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
(^|[ \n\r\t])

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?


Mijn probleem zou opgelost zijn als de spaties uit de link van de source worden weggehaald.

Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<img id="contentImage" src="http://www.cr-proje    cts.be/uploads/img/    onderwerpen/DR_thumb_img.jpg"


Zou dit moeten worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<img id="contentImage" src="http://www.cr-projects.be/uploads/img/onderwerpen/DR_thumb_img.jpg"
 
Joren de Wit

Joren de Wit

02/07/2007 18:23:00
Quote Anchor link
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.
 
Christophe Rogiers

Christophe Rogiers

02/07/2007 18:39:00
Quote Anchor link
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.


de spatis komen er in omdat ik elk woord langer dan 50 karakters in 2 breek...
 
Christophe Rogiers

Christophe Rogiers

03/07/2007 22:21:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 !
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.