reg expresies

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

De VeeWee

de VeeWee

01/07/2004 12:24:00
Quote Anchor link
Hallo,

Ik ben op zoek naar de regexpression voor automatisch email en link om te zetten, deze heb ik dan ook gevonden maar ik werk ook nog met ubb codes en dus zoek ik de expressie dat wanneer er geen -tags staan het wordt omgezet
en als jullie misschien echt te veel tijd zouden hebben liefst ook nog dat een url met een img extensie (bijvoorbeeld .gif of .jpg) automatisch word omgezet naar [img]-tags...

Bedankt!
Gewijzigd op 02/07/2004 01:19:00 door De VeeWee
 
PHP hulp

PHP hulp

26/11/2024 21:36:31
 
B a s
Beheerder

B a s

01/07/2004 13:55:00
Quote Anchor link
mitch! :p
 
Mitch X

Mitch X

01/07/2004 14:23:00
Quote Anchor link
Mitch? Wat is er met mij?

Hier om je op weg te helpen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
    $text
= "Er was eens op www.phphulp.nl een admin genaamd Bas.";
    $text2 = "Of was het nou http://www.phphulp.nl ???.";
    
    function
convert($text)
    {

        $retext = preg_replace("/((http:\/\/)*www\.[a-z0-9_\-\/.]+\.[a-z]{2,4})/is", "<a href=\"\\1\" target=\"blank\">\\1</a>", $text);
        
        return $retext;
    }


    $text = convert($text);
    $text2 = convert($text2);
    
    echo $text;
    echo $text2;
?>


http://sh4d3h.ath.cx/ubb.php staat deze code als file :P kun je kijke :)
 
De VeeWee

de VeeWee

01/07/2004 14:27:00
Quote Anchor link
nja dat had ik zelf ook wel, denk dat ik het niet goed uitgelegd heb:

ik heb een ubb parser en die zorgt ervoor dat of [url= ] laat omzetten naar <a href...> maar als ik dan dit script pak dan word die link in <a href> nog eens omgezet en dat is geen mooi zicht!
maar omdat ik niet zo goed ben in regular expressions weet ik niet hoe je ziet of het begint op [url= of [ url]
wat is hier ongeveer de juiste code voor?

Dank
 
Mitch X

Mitch X

01/07/2004 14:49:00
Quote Anchor link
Zo dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$text
= preg_replace("/\[url=([:a-z0-9.\/_\-?=;&]*)\]([A-Za-z0-9.\/]*)\[\/url\]/i","<a href=\"\\1\">\\2</a>",$text);
?>

Die werkt alleen als je text[ /url ] gebruikt en niet zomaar met <a href ...>
Of is dit het ook niet?
 
De VeeWee

de VeeWee

01/07/2004 14:52:00
Quote Anchor link
neen, die tags heb ik ook al ;)
het script zou er moeten voor zorgen dat ALLES werkt:


[url= ]
http://
www

maar als ik nu deze pak:

$retext = preg_replace("/((http:\/\/)*www\.[a-z0-9_\-\/.]+\.[a-z]{2,4})/is", "<a href=\"\\1\" target=\"blank\">\\1</a>", $text)

dan worden de urls die in de [url ] en in de [url= ] staan ook omgezet en dan word het een warboel.

dus het komt erop neer dat zoals in phpbb je gewoon de url kan ingeven, ofwel met [url ] ofwel met [url= ]
 
De VeeWee

de VeeWee

01/07/2004 21:41:00
Quote Anchor link
iemand? :s
 
Mitch X

Mitch X

01/07/2004 22:07:00
Quote Anchor link
Jah ik zat er net DreamWeaver al me te stressen maar het is me nog niet gelukt :'(
 
De VeeWee

de VeeWee

01/07/2004 22:09:00
Quote Anchor link
nja zit er ook al een onderhalf weekje op te zoeken en te googlen enzo maar helaas.
heb zelfs phpbb overhoop gehaald en het toch niet gevonden!
 
Mitch X

Mitch X

01/07/2004 22:21:00
Quote Anchor link
Morgen zal ik het nog eens proberen :)
 
Arend a

Arend a

02/07/2004 09:57:00
Quote Anchor link
In perl:
$message =~ s/\[url\](.*)\[\/url\]/<a href=\"$1\">$1<\/a>/gi;

vertaald naar php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$message
= preg_replace("/\[url\](.*)\[\/url\]/gi", "<a href=\"$1\">$1<\/a>", $message)
?>


$message =~ s/\(.*)\[\/url\]/<a href=\"$1\">$2<\/a>/gi;

#Automatische URL detectie
$message =~ s/^(http:\/\/\S+)/<a href=\"$1\" target=_new>$1<\/a>/gim;
$message =~ s/(\s)(http:\/\/\S+)(\s)/$1<a href=\"$2\" target=_new>$2<\/a>$3/gim;
$message =~ s/(\s)(http:\/\/\S+)$/$1<a href=\"$2\" target=_new>$2<\/a>/gim;

In 5 delen:
[1] \[url\]\[/url\] sytax
[2] syntax
[3] een url aan het begin van een regel
[4] een url tussen spaties
[5] een url aan het eind

Dit heeft een redelijke tijd geduurd om dit door te krijgen. Het is ook verstandig eerst de \[url\] syntax, en later pas de rest nog te detecten.

Grtz,

Adje
Gewijzigd op 02/07/2004 09:59:00 door Arend a
 
De VeeWee

de VeeWee

02/07/2004 11:58:00
Quote Anchor link
zeer hard bedankt man!
 
De VeeWee

de VeeWee

02/07/2004 15:36:00
Quote Anchor link
nog een probleem; dit heb ik ervan gemaakt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
// test:
$message = "
[url]www.bla.com[/url] zonder = en wwww <br>
[url]http://www.bla.com[/url] zonder = en met http <br>
[url=bla.com]www met =[/url] <br>
[url=http://www.bla.com]http met =[/url] <br>
een link www.hotmail.com in het midden (zoals dit: http://www.homail.com )van de zin <br>
http://www.hotmail.com op het begin van de zin <br>
www.hotmail.com op het begin van de zin <br>
een link op het einde van de zin: www.zin.com <br>
een link op het einde van de zin: http://www.zin.com <br>


"
;

// [url]
$message = preg_replace("/\[url\](http:\/\/\S+)\[\/url\]/gi", "<a href=\"$1\">$1<\/a>", $message);
$message = preg_replace("/\[url\](www.\S+)\[\/url\]/gi", "<a href=\"http:\/\/$1\">$1<\/a>", $message);
// [url=]
$message = preg_replace("/\[url=(http:\/\/\S+)\](.*)\[\/url\]/gi", "<a href=\"$1\">$2<\/a>", $message);
$message = preg_replace("/\[url=(www.\S+)\](.*)\[\/url\]/gi", "<a href=\"http:\/\/$1\">$2<\/a>", $message);
//Automatische URL detectie :
//url begin regel

$message = preg_replace("/^(http:\/\/\S+)/", "<a href=\"$1\" target=_new>$1<\/a>", $message);
$message = preg_replace("/^(www.\S+)/", "<a href=\"http:\/\/$1\" target=_new>$1<\/a>", $message);
//url tussen spaties
$message = preg_replace("/(\s)(http:\/\/\S+)(\s)/", "$1<a href=\"$2\" target=_new>$2<\/a>$3", $message);
$message = preg_replace("/(\s)(www.\S+)(\s)/", "$1<a href=\"http:\/\/$2\" target=_new>$2<\/a>$3", $message);
//url aan het eind van een regel
$message = preg_replace("/(\s)(http:\/\/\S+)$/", "$1<a href=\"$2\" target=_new>$2<\/a>", $message);
$message = preg_replace("/(\s)(www.\S+)$/", "$1<a href=\"http:\/\/$2\" target=_new>$2<\/a>", $message);




// ff echoën
echo ($message);

?>



heb het op
http://members.lycos.nl/fauvee/vrijpodium/url.php
gezet maar er is geen output..

kan iemand misschien vinden waar het aan ligt, vind het niet :s
 
De VeeWee

de VeeWee

02/07/2004 15:41:00
Quote Anchor link
ai ik kan het niet editen,

(forum locked ofzo)

waarde link begint moet of iets in die aard staan

heb de code vlug in een textarea gezet op deze pagina:

[url]http://members.lycos.nl/fauvee/vrijpodium/urlcode.htm[/url]
 



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.