Text hinter Marker in HTML-Datei einfügen

xcylo

Mitglied
Hallöle!

Ich habe eine HTML-Datei, in die ich in der Zeile unter einem bestimmten, vorher fest gelegten Marker (z.B.: <!-- HIER EINFÜGEN --> ) weitere Zeilen hinzufügen möchte.
Wie kann ich mit Hiilfe von PHP die Datei zeilenweise auslesen und, sobald der Marker gefunden ist, darunter etwas hinzufügen (nicht ersetzen)?

Hab schon nen Knoten im Hirn... :-)

Danke schonmal!

Gruß
XCylo7
 
PHP:
$marker = '<!-- Marker -->';
$dateiinhalt = join('', file('datei.html'));
$dateiinhalt = str_replace($marker, $marker . 'anzufügende Daten', $dateiinhalt);
 
Hallo snuu!

Danke für Deine schnelle Antwort. Leider klappt das ganze bei mir nicht. Ich habe folgendes Test-Skript probiert:

PHP:
<?php
$marker = '<!-- HIER -->'; 
$dateiinhalt = join('', file('news.html')); 
$dateiinhalt = str_replace($marker, $marker . '<br><br>', $dateiinhalt);
echo"Hat geklappt";
?>

Aber nix passiert... Was mache ich noch verkehrt?

Gruß
XCylo7
 
Also ich kenne join()M
nicht denke aber das die ersten "" ausgefüllt sein sollten ,und zwar mit dem zu replacenden Inhalt .
Hast du ausserdem den Marker in news.html?
Edit:
Also nachdem ich was nachgeschlagen hab müsste etwas zwischen den '' stehen.
 
Zuletzt bearbeitet:
Naja, wie ich schon in meinem ersten Posting schrieb, soll ja leider nichts ersetzt, sondern eingefügt werden. Insofern dachte ich, ein blank wäre tatsächlich auch richtig.

Hm, wie könnte das denn gehen?
 
Kleine Info am Rande für die verwirrten Seelen: join() ist nur ein Alias für implode(). Letzteres ist die offizielle Variante.

Gawayn
 
PHP:
 $marker = '<!-- HIER -->'; 
$einfuegen = "<br><br>";
$datei = "news.html";
$include_inhalt=file("$datei");
$include_daten=implode("",$include_inhalt);
$dateiinhalt = str_replace($marker, $marker . $einfuegen, $include_daten);

so sollte es dann gehen.
 
@xcylo: Wenn Du Dir zum Schluss $dateiinhalt ausgeben lässt, sollten die "<BR>" an den Marker angefügt worden sein. und Dein "Marker" in der HTML-Datei sollte auch "<!-- HIER -->" heissen.

@KristophS: Wenn Du JOIN nicht kennst, dann schlage es auf php.net bitte nach. Die Funktion file liest eine Datei in ein Array ein. Um daraus einen String zu erhalten, füge ich das Array wieder zusammen.

@low-group: Und worin unterscheidet sich jetzt Dein Code von meinem?

snuu
 
@snuu: Hmja, der Marker hieß natürlich auch so. Ich weiß zwar auch nicht warum, aber der Code von low-group funktioniert.

@low-group: Danke, so klappts. Vielen Dank!

Gruß
XCylo7
 
Könnte vielleicht eine fähige Kraft mit mehr Autorität als ich bestätigen, dass der meinige Code haargenau nach dem gleichen Schema, wie der von low-group vorgeht und zwischen die Singlequotes in der Join-Funktion im konkreten Fall ein Leerstring einzufügen ist.

Sonst werde ich hier noch für dumm abgestempelt.

snuu
 
Zurück