2 HTML Dateien in einer einzelnen zusammenführen


Programmierung HTML, CSS, PHP, JAVA, XML etc.

Antwort
 
Themen-Optionen
Alt 08.03.2008, 15:30   #1 (permalink)
2 HTML Dateien in einer einzelnen zusammenführen

Hi,

bin gerade am verzweifeln. Ich muss folgendes realisieren, finde dafür aber keine passende Möglichkeit:

Ich habe 2 HTML Dateien (kv.html und lv.html) und muss diese in einer (index.html) zusammenführen.

Die kv.html und lv.html ändern dabei täglich ihren Inhalt, sodass deren Längen stark variieren. Es müssen am Ende beide Dateien jederzeit vollständig dargestellt werden (untereinander) - egal welchen Inhalt die haben.

Als Beispiel... aus

kv.html
Code:
<html>
<head><title></title></head>
<body>
Das ist die erste Datei
</body>
</html>

lv.html
Code:
<html>
<head><title></title></head>
<body>
Das ist die zweite Datei
</body>
</html>
Muss am Ende , auf welche Art auch immer, über die index.html ausgegeben werden:
Code:
Das ist die erste Datei
Das ist die zweite Datei
Dafür stehen HTML, XML, CSS und JavaScript zur Verfügung.
PHP ist nicht optimal, geht aber notfalls, wenn es anders nicht realisierbar ist.
Ich hab selbst schon mit DIV, Iframe und OBJECT hin und her gebastelt, aber ich kriegs einfach nicht hin, dass die Dateien vollständig angezeigt werden. (max auf 100% und der Rest des Frames ist nur per Scrollbalken sichtbar zu machen - das ist aber nicht akzeptabel)

Hat jemand ne Idee? Xaicon?
__________________
I mean who doesn't want the cars,
money, fame, attention, bars, honeys,
games, attention, stars?
Funny how we say we don't need it
then turn around and try to achieve it.
-JD- ist offline   Mit Zitat antworten
Alt 08.03.2008, 16:20   #2 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Ich kann Dir nur dazu raten eine Serverseitige Programmiersprache zu verwenden. PHP, Perl or something...
Demnach hätte man dann einen Script, der die zweit HTML-Datein öffnet, alles zwischen den body-Tags der zweiten Datei nimmt, vor dem </body> der ersten Datei einfügt, und als neue Datei speichert.
Das Ganze könnte man dann per Cronjob / Task-Scheduler oder einem Überwachungstool ausführen. Oder soll das in Ecthzeit laufen, d.h. bei jeder Benutzerinteraktion neu erstellt werden?

Unter PHP könnte das z.B. so aussehen:
PHP-Code:
<?php
$file1path 
"";
$file2path "";
$file1 file($file1path);
$file2 implode(file($file2path));
preg_match("(<body>.*</body>)",$str,$result);
foreach(
$file1 as $line){
  if(
eregi("</body>",trim($line))){
    
$line "\n".$result[0]."\n".$line;
  }
  
$returnfile .= $line;
}
echo 
$returnfile;
?>
Ich hab das jetzt nicht auf syntaktische Fehler getestet, sondern nur eben getippt. Sollte aber in etwa passen.

Unter Javascript könnte man etwas in der Art auch erreichen, was aber wesentlich umständlicher ist, und nur dann funktioniert, wenn der User auch Javascript aktiviert hat.
__________________
Man reiche mir mein LART!
Kein Support bei IT-Fragen via ICQ, Skype, PN oder Email!
(Stammuser ausgenommen)
Xaicon ist gerade online   Mit Zitat antworten
Alt 08.03.2008, 17:22   #3 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Die zwei Dateien dürfen nicht verändert werden; die müssen in der dritten Datei (index.html) zusammengeführt werden. JavaScript wird aktiviert; der Rechner, auf dem das läuft, ist nicht ans Netz angeschlossen und soll am Ende so ne Art "Schwarzes Brett" sein. Das Problem wegen PHP ist, dass auf dem Rechner kein lokaler Webserver o.ä. installiert wird, mit dem PHP geparsed werden könnte. Notfalls installier ich natürlich den lokalen Webserver, damit PHP funzt.

Mit PHP ist das sicher auch alles einfacher (da findet man unter google auch viel mehr bezgl. Dateien auslesen und zusammenführen); aber meine Hoffnung war, dass es auch mit JS (relativ) einfach geht Kenn mich damit leider kaum aus.

Danke jedenfalls schonmal; werd jetzt mal gucken, wie ich das ganze mit PHP realisiere.

/Edit: Achso, das ganze soll nicht in Echtzeit laufen. Allerdings denke ich, wenn ich eh schon PHP benutze, werde ich mal schauen, dass er auch alle paar Minuten Änderungen prüft und direkt anzeigt.
__________________
I mean who doesn't want the cars,
money, fame, attention, bars, honeys,
games, attention, stars?
Funny how we say we don't need it
then turn around and try to achieve it.
-JD- ist offline   Mit Zitat antworten
Alt 08.03.2008, 19:26   #4 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Oben genannter Script würde immer die aktuellen Dateien einlesen, und anzeigen. Zum Speichern in eine dritte Datei wäre dass dann nur ein fwrite();

Ich versteh den Hintergrund nicht ganz. Soll das ganze nur auf einem Rechner lokal laufen? Dann kann man natürlich auch zu anderen Sprachen grifen. .net oder sowas. Theoretisch kann man das sogar mit eine Batch-Datei machen.
__________________
Man reiche mir mein LART!
Kein Support bei IT-Fragen via ICQ, Skype, PN oder Email!
(Stammuser ausgenommen)
Xaicon ist gerade online   Mit Zitat antworten
Alt 09.03.2008, 08:29   #5 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Ja, läuft lokal auf einem Rechner. Aber der Output von dem Programm, dass die beiden Dateien erstellt, ist halt .html Und da ich mich kein bisschen mit .net usw auskenne, möchte ich das halt möglichst so realisieren, dass ich das bei Bedarf auch noch ändern kann
__________________
I mean who doesn't want the cars,
money, fame, attention, bars, honeys,
games, attention, stars?
Funny how we say we don't need it
then turn around and try to achieve it.
-JD- ist offline   Mit Zitat antworten
Alt 10.03.2008, 15:12   #6 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

installier doch php auf dem pc und lass das ganze über einen geplanten task laufen. also alle 10 minuten die php.exe mit dem passenden script als parameter aufrufen. dazu brauchst du dann keinen webserver.
alternativ könntest du das sicherlich auch mit Windows Script Host (WSH) und VB-Script machen. könntest du mit ein wenig googlen hinbekommen denke ich. dateien lesen und schreiben sollte damit kein problem sein.
__________________
WE GOTTA TAKE THE POWER BACK!!!
porschinho ist offline   Mit Zitat antworten
Alt 10.03.2008, 15:14   #7 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Habs am WE letzten endes mit einer Mischung aus PHP und JavaScript vollständig realisiert. Danke für die Antworten!

@porschinho Was meinste aber mit
Zitat:
die php.exe mit dem passenden script als parameter aufrufen. dazu brauchst du dann keinen webserver.
Ist mir was entgangen? Gibts ne *.exe um einzelne PHP Skripte zu parsen (ohne Apache + Modul etc)?
__________________
I mean who doesn't want the cars,
money, fame, attention, bars, honeys,
games, attention, stars?
Funny how we say we don't need it
then turn around and try to achieve it.
-JD- ist offline   Mit Zitat antworten
Alt 10.03.2008, 16:23   #8 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Zitat:
Zitat von -JD- Beitrag anzeigen
Ist mir was entgangen? Gibts ne *.exe um einzelne PHP Skripte zu parsen (ohne Apache + Modul etc)?
jop, man kann die PHP.exe auch seperat ausführen. Einen Webserver braucht man nicht zwingend.
__________________
Man reiche mir mein LART!
Kein Support bei IT-Fragen via ICQ, Skype, PN oder Email!
(Stammuser ausgenommen)
Xaicon ist gerade online   Mit Zitat antworten
Alt 10.03.2008, 16:50   #9 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Wieder was dazu gelernt... das macht die ganze Sache natürlich direkt attraktiv
__________________
I mean who doesn't want the cars,
money, fame, attention, bars, honeys,
games, attention, stars?
Funny how we say we don't need it
then turn around and try to achieve it.
-JD- ist offline   Mit Zitat antworten
Alt 11.03.2008, 08:50   #10 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Neues Problem... sicher habt ihr ne Lösung

Ich lasse mittlerweile folgendes Skript zu einer *.exe umwandeln:

Code:
<?php 

$con_head = fOpen('head.html','r');

$head = fRead($con_head, filesize('head.html'));

fClose($con_head);



$con_kv = fOpen('kvertretung.html','r');

$kv = fRead($con_kv, filesize('kvertretung.html'));

fClose($con_kv);



$con_lv = fOpen('lvertretung.html','r');

$lv = fRead($con_lv, filesize('lvertretung.html'));

fClose($con_lv);



$con_tail = fOpen('tail.html','r');

$tail = fRead($con_tail, filesize('tail.html'));

fClose($con_tail);



$con_start = fOpen('start.html','w');

fwrite($con_start, $head);

fwrite($con_start, $kv);

fwrite($con_start, $lv);

fwrite($con_start, $tail);

fClose($con_start);



exec("start.html");

?>
Das ganze wird später dann per Batch automatisiert alle x Minuten gestartet.
Problem dabei: Dadurch öffnet er natürlich jedesmal ein neues Browserfenster. Das ist aber dämlich.

Jetzt könnte ich per Batch sicherlich den Prozess ie.exe einfach killen und anschließend die Datei s.o. wieder starten. Finde ich aber nicht optimal; denn somit würde alle 1-2 Minuten für ein paar Sekunden das Fenster "abschmieren" und neu aufpoppen. Ausserdem sollte er den Prozess nicht einfach irgendwo killen, sondern in dem Moment, an dem die start.html einmal vollständig heruntergescrollt wurde (die datei start.html wird per JavaScript gescrollt, das JS befindet sich in der Datei "head.html").

Gibt es da vll noch eine schönere Lösung für? Das Problem ist, dass die Datei start.html ja erst durch die *.exe zusammengebaut wird. Wenn ich nun an der kvertretung.html oder lvertretung.html etwas ändere, wird diese Änderung dadurch nicht übernommen, solange ich die *.exe nicht erneut ausführe... die Dateien müssen aber immer auf dem aktuellsten Stand (+- 1 Minute) angezeigt werden...
__________________
I mean who doesn't want the cars,
money, fame, attention, bars, honeys,
games, attention, stars?
Funny how we say we don't need it
then turn around and try to achieve it.
-JD- ist offline   Mit Zitat antworten
Alt 11.03.2008, 08:56   #11 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Ich würde prüfen, ob der Task schon läuft. (edit: obwohl, das ist mit php nicht wirklich möglich)
wenn nein: exec(...);
wenn ja: nix tun.

Und dann einfach in den Header der HTML einen automatischen Refresh per <meta http-equiv="refresh" content="60; URL=...">
__________________
Man reiche mir mein LART!
Kein Support bei IT-Fragen via ICQ, Skype, PN oder Email!
(Stammuser ausgenommen)
Xaicon ist gerade online   Mit Zitat antworten
Alt 11.03.2008, 09:23   #12 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Das löst aber nicht das Problem, glaube ich (?).
Dadurch würde man doch nur erreichen, dass er die bereits erstellte start.html refreshed - aber da geänderte Daten in der kvertretung/lvertretung.html stehen, würden die Änderungen nicht sichtbar sein, solange die *.exe datei nicht erneut ausgeführt wird.
__________________
I mean who doesn't want the cars,
money, fame, attention, bars, honeys,
games, attention, stars?
Funny how we say we don't need it
then turn around and try to achieve it.
-JD- ist offline   Mit Zitat antworten
Alt 11.03.2008, 10:41   #13 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

ja, die exe muss schon immer neu ausgeführt werden. das kannst du ja per task-scheduler, einem watcher, der exe selbst oder theoretisch per batch machen. nur das starten der seite würde ich dann davon abhängen, und die seite refreshen.

wenn du eine exe-hast, wist du nicht darumkommen die seperat zu starten. theoretisch gibt es noch die möglichkeit eine exe per active-x auszuführen, aber das muss in den sicherheitseinstellungen vom browser so konfiguriert sein. ich weiss nicht ob das ohne meldung (die dann immer zu bestätigen ist) funktioniert. browserabhängig

mit nem lokalen webserver allerding hätte man das thema wiederum nicht.
__________________
Man reiche mir mein LART!
Kein Support bei IT-Fragen via ICQ, Skype, PN oder Email!
(Stammuser ausgenommen)
Xaicon ist gerade online   Mit Zitat antworten
Alt 11.03.2008, 10:44   #14 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

dann nimm den execute doch aus der exe raus und starte die erstellte html datei von hand. die exe dann per task im hintergrund ausführen. sobald der browser die seite neu läd, sollten doch die aktuellen inhalte zu sehen sein.

mit javascript könntest du den refresh unterbinden falls grade einer auf der seite rumscrollt. damit würdest du den leser auch nicht stören.

ajax ginge auch ...
__________________
WE GOTTA TAKE THE POWER BACK!!!
porschinho ist offline   Mit Zitat antworten

Alt 11.03.2008, 16:44   #15 (permalink)
AW: 2 HTML Dateien in einer einzelnen zusammenführen

Zitat:
Zitat von porschinho Beitrag anzeigen
dann nimm den execute doch aus der exe raus und starte die erstellte html datei von hand. die exe dann per task im hintergrund ausführen. sobald der browser die seite neu läd, sollten doch die aktuellen inhalte zu sehen sein
*kopf -> wand*
Oh man... danke... ich hab manchmal auch nen gigantisches Brett vorm Kopf. Die Lösung klappt einwandfrei und das Resultat stimmt auch.

Danke nochmal an Xai/Porschi. Jetzt stimmt das Endprodukt
__________________
I mean who doesn't want the cars,
money, fame, attention, bars, honeys,
games, attention, stars?
Funny how we say we don't need it
then turn around and try to achieve it.
-JD- ist offline   Mit Zitat antworten
Antwort

Stichworte Lesezeichen
html, programmierung

Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Partitionen zusammenführen ohne Datenverlust? richieguitar Software 3 28.10.2007 13:05
PDF zusammenführen Freeware Cold Blood Software 10 29.01.2007 23:05
DVD to avi, divx etc. aus einzelnen Kapiteln? faulwurf Software 6 22.02.2005 12:20



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. | SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Copyright ©2008, BoardPlanet.net | Style enhanced by digital-anger.de