• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Nicht trivial - HTML Modifikation

imoney91

Mitglied
Hallo Community,

ich stehe vor einem Problem und bräuchte wieder ein Denkanstoß.

Folgender Fall:
Ich bekomme dynamisch erzeugte .HTML Dateien die jeweils ein Kapitel eines Buches widerspiegeln.
Nun möchte ich diese HTML Datei mit PHP öffnen und NUR bestimmte Tags auslesen/modifzieren.
Genau genommen möchte alle <img> nehmen und diese modifizieren. Die src soll um einige Pfade ergänzt werden.

z. B soll dieses HTML Code Fragment ergänzt werden.

Code:
...
<br/>
</div><div class="box">
<div class="figcenter c1"><img src="www.gutenberg.org@files@24015@24015-h@[email protected]" width="382" height="500" alt="cover" title=""/></div>
<hr class="c2"/>
<div class="figcenter c3"><img src="www.gutenberg.org@files@24015@24015-h@[email protected]" width="372" height="500" alt="title page" title=""/></div>
<h1 id="pgepubid00000">A MASQUE OF DAYS</h1>
<h3 id="pgepubid00001">CASSELL &amp; COMPANY<br/>
LIMITED: LONDON:</h3>
<hr class="c2"/>
<div class="figcenter c4"><img src="www.gutenberg.org@files@24015@24015-h@[email protected]" width="373" height="500" alt="image" title=""/></div>
...

So sollen die <img> Tags danach aussehen:

Code:
<img src="(/HIER/SOLL/DIE/SRC/ERGAENZT/WERDEN/www.gutenberg.org@files@24015@24015-h@[email protected]"

Ich habe noch keine Idee, wie ich das umsetzen soll...
Vielleicht kann mir jemand einen Tipp geben

Gruß
 
Wenn das prinzipiell immer am Anfang von src=" eingefügt werden soll, reicht ein einfaches str_replace
 
Wenn ich mich nicht täusche, dann ersetzt der Befehl "str_replace" meinen gesuchten String oder?
:(
PHP:
<?php
    $text = '<img src="www.gutenberg.org@files@24015@24015-h@[email protected]" width="382" height="500" alt="cover" title=""/>';
    
    $search = '<img src="';
    
    $replace = '<img src="einfach_mal_nachdenken!!!';
    
    $text = str_replace($searh, $replace, $text);
?>
 
Ich würde jetzt mit dem Befehl "file_get_contents" den kompletten Inhalt eines Kapitels (.html) in eine Variable einlesen und mit einer For Schleife alle img tags bearbeiten. Jedoch scheint mir die Performance darunter zu leiden. Ich denke es lässt sich kaum vermeiden oder? Auch weil einzelne Kapitel sehr groß sind.

gruß
 
Ist das Problem noch aktuell?

str_replace ersetzt ja wie gesagt alle Strings, die nach dem Suchschema gefunden worden sind durch den gegeben String. Wenn du also alle Pfade zu einem gleichen ändern möchtest, ist str_replace einfach die optimalste Lösung.

Schwierig wird es nur, wenn du unterschiedliche Pfade angeben möchtest.
 
Zurück
Oben