# Platzhalter in PHP



## Breuker (26. März 2006)

Hallo auch!
Ich hab (mal wieder) ein Problem in php:

Ich habe folgenden HTML abschnitt:

```
<a href="xyz"></a>
```

Nun soll das xyz soll nun mir str_replace entfernt werden. Das Problem dabei ist jedoch, dass der Inhalt des href dynamisch ist.
Ist es möglich, dass zu entfernen?

Breuker


----------



## Gumbo (26. März 2006)

Du könntest Folgendes machen:
	
	
	



```
<?php

	$string = '<a href="{VAR}"></a>';
	echo str_replace('{VAR}', 'foobar', $string);

?>
```
Das Ganz kann dann selbstverständlich auch noch zu einer eigenen Template-Klasse erweitert werden.


----------



## Breuker (26. März 2006)

ne so meinte ich das nicht:
so sollte das ungefähr aussehen:


```
<?
$string = str_replace('<a href="Platzhalter]">','',$string);
?>
```


----------



## Pain-maker (26. März 2006)

Mach's über preg_replace()!

```
$string = "<a href=\"xyz\">Test</a>";
$newlink = "test.php";
$newstring = preg_replace("/(<a href=\")(.*)(\">Test\<\/a\>)/is", "\\1".$newlink."\\3", $string);
```

Oder wenn du spezielle Platzhalter hast:

```
$file = "<a href=\"{Link1}\">Link 1</a> <a href=\"{Link2}\">Link 2</a> <a href=\"{Link3}\">Link 3</a>";
$vars = array("{Link1}", "{Link2}", "{Link3}");
$replaces = array("home.php", "news.php", "forum.php");
for($i=0; $i<count($vars); $i++) {
	$file = str_replace($vars[$i], $replaces[$i], $file);
}
```

Hoffe es hilft dir!

Mfg Pain-maker


----------



## fanste (26. März 2006)

@Pain-maker:
Dein zweiter Vorschlag ist ja im Prinzip genau das, was Gumbo schon gemacht hat. Und soweit ich weiß, könnte man den Code von dir noch vereinfachen.

```
$file = "<a href=\"{Link1}\">Link 1</a> <a href=\"{Link2}\">Link 2</a> <a href=\"{Link3}\">Link 3</a>"; 
$vars = array("{Link1}", "{Link2}", "{Link3}"); 
$replaces = array("home.php", "news.php", "forum.php"); 
    $file = str_replace($vars, $replaces, $file);
```

@Breuker:
Willst du einen Link dynamisch erzeugen, den kompletten a-Tag löschen, oder nur das was im href steht ändern?


----------



## Gumbo (26. März 2006)

Ehrlich gesagt, werde ich aus deinem Beispiel nicht schlau, Breuker. Könntest du es bitte etwas ausführlicher erläutern.


----------



## Breuker (26. März 2006)

also:
Ich habe folgenden HTML Code: 

```
<a href="Irgend_eine_Seite.html">Text</a>
```
Jetzt möchte ich alles, was vor und nach Text steht entfernen. Nur kann es sein, dass der der href zu einer ganz anderen seite geht
Beispiel:

```
<a href="Irgend_eine_andere_Seite.html">Text</a>
```

Jetzt verständlicher?


----------



## ZodiacXP (26. März 2006)

Er will anscheinend den mittleren Teil von (href=).*(>) haben. Also nur die URL.
Oder bin ich jetz auf'm falschen Dampfer?
Ich hoffe mal nicht - nur leider kann ich RegEx nicht so gut und kann ihm auch keine vernünftige Lösung anbieten. War nur ein Post zum Verständnis.


----------



## fanste (26. März 2006)

Wenn es so ist, soll er sich mal dashier durchlesen: http://www.tutorials.de/forum/php/239836-suchmuster.html


----------

