perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 23
Click for quality!




11.02.2012 / 06:55

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragZeichen mit s/// ersetzen
Seitenanfang
Hallo!

Ich habe folgendes Problem. Ich möchte Links in einem String manipulieren. der User setzt Links mit

[link]http://www.test.com[/link]

bisher habe ich diese Links immer so aufgespürt und ersetzt:

$text =~ s/\[link\](.+?)\[\/link\]/<a href=\"$1\">$1<\/a>/gi;

Nun möchte ich aber $1 ändern, bevor ich die Ersetzung druchführe. zb. soll die Eingabe des Benutzers

[link]http://www.test.com[/link]
sein und daraus soll dann
<a href=\"ftp://www.test.com\">ftp://www.test.com<\/a>
enstehen. Dabei ist zu beachten, dass der Text auch mehrere Links enthalten kann. Weis jemand wie das geht?

mfg, Perler

Datum: 05.04.2007-01:05

Beitragre: Zeichen mit s/// ersetzen
Seitenanfang
$1 vor ersetzung ändern

$text =~ s/\[link\](.+?)\[\/link\]/<a href=\"do_something($1)\">do_something($1)<\/a>/egi;

Datum: 05.04.2007-07:34

Beitragre: Zeichen mit s/// ersetzen
Seitenanfang
Also ich hab mir ja irgendwie gedacht, dass die Lösung einfach ist, aber so einfach ;-) Den e-Flag hatte ich echt übersehen.

Das einzige, dass mir aufgefallen ist: Ich kann im Ersetzungsteil nur die Subroutine einsetzen und muss halt aus dieser auch die HTML-Zeichen mitübergeben. Wenn ichs mache wie in Deinem Beispiel bekomme ich mit strict einen Fehler.

Danke dir ;-)

mfg, Perler

Datum: 05.04.2007-10:47

Beitragre: Zeichen mit s/// ersetzen
Seitenanfang
Du kannst den HTML-code auch in den Ersetzungsteil mit einabuen:
$text =~ s!\[link\](.+?)\[/link\]!'<a href="'. do_something($1) .'">'. do_something($1) .'</a>'!egi;

- mike

Datum: 05.04.2007-18:16

-






-
-