Link-Tag <a> ersetzen

zempsit

Erfahrenes Mitglied
Hallo zusammen.

Ich will bei einer Seite alle Links deaktivieren bzw. durch einfachen Text ersetzen. Dazu habe ich etwas kleines mit preg_replace geschrieben. Das Ganze will aber nicht so recht funktionieren.
Mit regulären Ausdrücken kenne ich mich nicht besonders gut aus, aber vielleicht kann mir jemand von euch einen Lösungsvorschlag geben. Ich glaube, dass Problem liegt daran, dass preg_replace Teile eines Strings, aber nicht einer ganzen Datei ersetzen kann.

Gibt es da irgendeine andere Funktion?

PHP:
$expr = '/<a.*>(.*)<\/a>/i';
$repl = preg_replace($expr, '$1', $file);
include_once $repl;
 
Hallo.
Versuchs mal damit:

PHP:
$expr = '/<a.*>(.*)<\/a>/i'; 
$included_file = file_get_contents($file);

$included_file =  preg_replace($expr, '$1', $included_file);

echo $included_file;
 
Danke für deine Antwort. Das ist im Grunde genommmen genau, dass was ich gesucht habe. Es funktioniert aber nur, solange die Datei kein PHP enthält. Das ist aber bei mir teilweise der Fall.
Deshalb brauche ich eine andere Lösung.
 
Muss der PHP Code unbedingt in deiner includierten Datei ausgeführt werden, oder kann das nach dem Include passieren

Beim 2. Fall kannst Du das einfach mit der eval() Funktion lösen:

PHP:
$expr = '/<a.*>(.*)<\/a>/i';  
$included_file = file_get_contents($file); 

$included_file =  preg_replace($expr, '$1', $included_file); 

echo eval($included_file);
 
Das würde aber nur im Fall funktionieren, wenn die Datei nur PHP enthält und nicht noch HTML. Bei HTML gibt es einen ParseError.
Trotzdem Danke.
 
Evtl. meinst du sowas?
PHP:
<?php
$str = "Ich klicke auf <a href=\"###.php\">meine Homepage</a> zum Gucken";
print strip_tags($str);

// Ausgabe -> Ich klicke auf meine Homepage zum Gucken
?>
 
Was genau möchtest du erreichen? Oder wozu möchtest du, dass sämtliche a-Tags entfernt werden?
 
Ich will eine Druckansicht für die Seiten einer Homepage machen. Dabei sollen die Links in der Druckansicht nicht mehr aktiv sein.

Es müssen also nur die a-Tags und nicht alle HTML-Tags (strip_tags) raus.
 
Arbeite doch einfach mit einem Druck-Stylesheet. Und bei der Druckvorschau kannst du das Bildschirm-Styhesheet durch das Druck-Stylesheet ersetzen. Ob die Links dann noch funktionieren, ist dann unwichtig.
 
Das wollte ich eigentlich nicht machen, weil ich den Besuchern zeigen wollte, dass eine spezielle Druckansicht gibt. Aber da es einfacher ist, mache ich es jetzt trotzdem mit dem Print-Stylesheet und einfach einen Link unten auf der Seite, welcher mit Javascript den Druckauftrag startet (sowas gibt es glaube ich).

Trotzdem würde es mich interessieren, ob die Möglichkeit bestehen würde, eine Datei nach a-Tags zu durchsuchen und diese dann zu deaktivieren. Wenn also jemand eine Idee hat, würde ich mich freuen.

mfg zempsit
 
Zurück