# Link im Text suchen und ersetzen



## Luzie (20. Februar 2004)

Hallo,

ich möchte gerne einen einfachen Link im Text mit html umschreiben, damit er anklickbar wird. 

Ich habe jetzt eine Stunde hier im Forum gesucht und einige Beispiele gefunden. Die meisten bezogen sich aber auf das Ersetzen von UBB-Code. 

Folgendes habe ich bebastelt. Funktioniert natürlich nicht. Leider weiss ich auch nicht, ob man den Suchstring im Ersatz auch mit $1 kennzeichnet. 

Was habe ich denn falsch gemacht?


```
<?php
$string = "Text mit Link h t t p:// w w w.test.de link link link";
function parseURL($out) {
 $urlsearch="^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$";
 $urlreplace="<a href=\"$1\">$1</a>";
 $out = eregi_replace($urlsearch, $urlreplace, $out);
 return $out;
}
echo parseURL($string);
?>
```

edit:
Leerzeichen zwischen h t t p gesetzt.


----------



## AcidOne (20. Februar 2004)

versuchs einfach ma mit 

```
$string=ereg_replace("h t t p","http",$string);  //oder $string=str_replace("h t t p ","http",$string); dann müsste es auch klappen. 
 echo "<a href=\"$string\">$string</a>";
```


```
<?php
$string = "Text mit Link h t t p:// w w w.test.de link link link";
function parseURL($out) {
 $urlsearch="^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$";
 $urlreplace="<a href=\"$1\">$1</a>";
 $out = eregi_replace($urlsearch, $urlreplace, $out);
 return $out;
}
echo parseURL($string);
?>
```

edit:
Leerzeichen zwischen h t t p gesetzt.


----------



## Luzie (20. Februar 2004)

Hi

nee, es geht mir nicht um das Replacen der Leerzeichen zwischen http, die habe ich nur dazwischengesetzt, weil der Forumcode mir aus der URL in der variablen $string einen Link baut.

Ich möchte nur einfach, dass eine URL im text mittels RegExp erkannt und entsprechend als Link anklickbar gemacht wird, sprich

ersetze

http://www.text.de

durch

<a href="http://www.text.de">http://www.text.de</a>


----------



## AcidOne (20. Februar 2004)

*wie iss im endeffekt ja egal*

trotzdem mit str_replace()

und zwar 


```
$string="http://www.text.de";
$link=str_replace($string,"<a href=\"$string\">$string</a>",$string);
echo $link;
```

sollest dann vielleicht nur gescheitere Vars nehmen 

GreetZ Acidone


----------



## Luzie (20. Februar 2004)

Hi AcidOne,

gut, ich denke, ich will nochmal weiter sehen, ob ich irgendwo ein Tut finde. 

Es geht mir um das Replacen von bestimmten Mustern, die ich mit RegExp im Text finden kann und dann ersetze. In diesem Falle das Pattern-Muster, welches eine URL erkennt. 

Danke Dir.


----------



## Luzie (20. Februar 2004)

es hat sich erledigt. Ich hatte das falsche Muster genommen und anstelle \\1 $1 gesetzt.


----------

