mit php den html code ändern??

  • PHP

  • Sn!C
  • 1239 Aufrufe 21 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • mit php den html code ändern??

    hallo leute,
    ich hab folgende frage und zwar ob es ein php script gibt mit dem man den inhalt einer html datei ändern kann und gleich abspeichern kann?
    ich bräuchte das dafür weil ich mir folgendes ausgedacht habe:
    ich habe eine html seite 1 "seite1.html" so. da hab ich ein java script drauf gemacht dass wenn man ein doppelklick auf den text macht man auf seite2 "seite2.html" weitergeleitet wird. die "seite2.html" hab ich jedoch mit .htaccess gesichert sodass wenn man auf der "seite1.html" ein doppelklick auf den text macht sich eine username und pw abfrage öffnet. wer nicht weiß wie ich es meine schaut hier: Untitled Document
    so zurück zum php script. wenn ich nun die "seite2.html" auf die man weitergeleitet wird wenn man username und passwort eingegeben hat sollte dann statt der "seite2.html" das php script kommen mit dem man den inhalt der "seite1.html" ändern kann. dh man bräuchte kein ftp zugang um textinhalte von einer seite zu bearbeiten.

    wenn jemand weiß wie man sowas macht oder vielleicht ist das ja auch alles viel zu umständlich, vielleicht geht es ja auch viel einfacher, würd ich mich freuen wenn mir jemand helfen könnte

    Gruß Sn!C
  • sei gegrüßt Sn!C
    also, deine idee ist möglich!

    allerdings solltest du eine php datei anlegen, auf die es weitergeht, in der sollte dann folgendes script stehen:

    <?
    if ($step=="")
    {
    ?>
    <form action="schreibtest.php" method="post" enctype="multipart/form-data">
    <textarea name="schreiben"></textarea>
    <input type="submit" name="submit" value="submit" />
    <input type="hidden" name="step" value="2" />
    </form>
    <?
    }
    else
    {
    $read = $schreiben;

    $write = fopen ("ausgabe.html", "w");
    fwrite ($write, $read, strlen($read));
    fclose ($write);
    }
    ?>

    dieses script kann in eine datei schreiben! das was man imformular eingibt, wird hinterher in die ausgabe.html geschrieben

    aber dafür muss deine seite2.html eine seite2.php werden
    da du sie ja eh per htaccessschützt, kann da niemand drauf zugreifen!

    hoffe, es ist verständlich!
  • jawoll
    is eigentlich auch recht einfach
    aber denk dran, wenn du hinterher eine html datei schreiben willst, solltest auch kopf und fussbereich darein setzen...
    also sprich:

    $kopf = "<html><head><title>Seite1.html</title></head><body>";
    $fuss = "</body></html>
    willst du standardmäßig noch was vor oder nach dem geänderten text eingeben, dann musste das in der variable dazu packen...
    ausgabe dann:

    $read= $kopf.$schreiben.$fuss;

    wenn du noch ne idee haben willst, wie man den inhalt der vorherigen datei darein bekomme in die textarea, dann meld dich...
    dann wird das ganze wahrscheinlich einfacher
    kannst dann in der textarea direkt das ganz dokument bearbeiten, ohne $kopf und $fuss

    hab das ganze noch ein wenig verfeinert:

    <?
    if ($step=="")
    {
    $schreiben_vorab = fopen ("ausgabe.html","r");
    while ($line = fgets($schreiben_vorab,256)) {
    $var.=$line; }
    ?>
    <form action="schreibtest.php" method="post" enctype="multipart/form-data">
    <textarea name="schreiben"><? echo $var; ?></textarea>
    <input type="submit" name="submit" value="submit" />
    <input type="hidden" name="step" value="2" />
    </form>
    <?
    }
    else
    {
    $read = $schreiben;
    $write = fopen ("ausgabe.html", "w");
    fwrite ($write, $read, strlen($read));
    fclose ($write);
    }
    ?>
  • also ich hab jetzt das script als seite2.php auf den server geladen allerdings gibts da ein problem und zwar ist die seite2.php in einem andern verzeichnis als die seite1.html wie muss ich also die ausgabe.html nennen damit sie die seite1.html überschreibt? also die seite1.html ist in dem verzeichnis: /julian/seite1.html die seite2.php also das script ist in: /julian/test/seite2.php

    also wie muss ich das dann angeben bei ausgabe.html? wenn ich da /julian/seite1.html hinschreib gehts nicht oder soll da ausgabe.html stehen bleiben??

    ps: wie geht das das man gleich den ganzen text drin bearbeitet?? also wenn man nur 1 oder 2 wörter von dem text ändern will ?
  • PHP-Quellcode

    1. <?
    2. if ($step=="")
    3. {
    4. $schreiben_vorab = fopen ("../seite1.html","r");
    5. while ($line = fgets($schreiben_vorab,256)) {
    6. $var.=$line; }
    7. ?>
    8. <form action="schreibtest.php" method="post" enctype="multipart/form-data">
    9. <textarea name="schreiben"><? echo $var; ?></textarea>
    10. <input type="submit" name="submit" value="submit" />
    11. <input type="hidden" name="step" value="2" />
    12. </form>
    13. <?
    14. }
    15. else
    16. {
    17. $read = $schreiben;
    18. $write = fopen ("../seite1.html", "w");
    19. fwrite ($write, $read, strlen($read));
    20. fclose ($write);
    21. }
    22. ?>
    Alles anzeigen
  • okay danke habs verstanden. hab des feld größer bekommen jedoch wenn ich jetzt die html änder dann submit drücke kommt das:
    "Diese Seite ist leider nicht verfügbar." Fehler 404
    also die html seite die geändert wird ist in einem andern ordner als die php seite. den html code seh ich allerdings im kasten


    Gruß Sn!C
  • okay also den text hat er jetzt geändert. allerdings ist jetzt folgendes problem ^^ wenn ich den text geändert hab und dann aber den text wieder ändern müsst ich ja theoretisch wieder nen doppelklick drauf machen wegen dem javascript damit ich dann wieder auf die seite2.php komme allerdings passiert nix wenn ich nen doppelklick drauf mache :( weiß einer an was das liegt? ich glaub ich weiß an was aber ich weiß nicht wie ich es beheben kann ^^ und zwar wird das java script verändert wenn man den text ändert:

    Vor der Änderung:
    <center ondblclick="window.location.href='http://juli125.ju.funpic.de/julian/test/seite2.php'">Zentrierter Text der bei doppeltem anklicken ein Ereignis auslöst</center>


    Nach der Änderung:
    <center ondblclick=\"window.location.href=\'http://juli125.ju.funpic.de/julian/test/seite2.php\'\">Versuch text zu ändern...test1234</center>


    der unterschied ist das jetzt bei dem java script immer diese \ striche sind weiß aber nicht woher die kommen hab sie da nicht reingeschrieben hab nur den text verändert.
  • hmm okay hab ich gemacht aber wenn ich jetzt auf seite1.html wieder klick steht da nur der html code also:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> </head> <body><center ondblclick="window.location.href='http://juli125.ju.funpic.de/julian/test/seite2.php'">test text geändert ???</center> </body> </html>
  • Wegen der PN:

    PHP-Quellcode

    1. <?
    2. if ($step=="")
    3. {
    4. $schreiben_vorab = fopen ("../seite1.html","r");
    5. while ($line = fgets($schreiben_vorab,256)) {
    6. $var.=$line; }
    7. fclose($schreiben_vorab);
    8. preg_match("/<body>(.*?)<\/body>/is", $var, $match);
    9. $var = $match[0];
    10. ?>
    11. <form action="schreibtest.php" method="post" enctype="multipart/form-data">
    12. <textarea name="schreiben"><? echo $var; ?></textarea>
    13. <input type="submit" name="submit" value="submit" />
    14. <input type="hidden" name="step" value="2" />
    15. </form>
    16. <?
    17. }
    18. else
    19. {
    20. $getold = fopen ("../seite1.html","r");
    21. while ($line = fgets($getold,256)) {
    22. $var.=$line; }
    23. fclose($getold);
    24. $read= preg_replace("/<body>(.*?)<\/body>/is", stripslashes($_POST['schreiben']), $getold);
    25. $write = fopen ("../seite1.html", "w");
    26. fwrite ($write, $read, strlen($read));
    27. fclose ($write);
    28. }
    29. ?>
    Alles anzeigen


    Try it.
  • Sry hab mich verschrieben

    PHP-Quellcode

    1. <?
    2. if ($step=="")
    3. {
    4. $schreiben_vorab = fopen ("../seite1.html","r");
    5. while ($line = fgets($schreiben_vorab,256)) {
    6. $var.=$line; }
    7. fclose($schreiben_vorab);
    8. preg_match("/<body>(.*?)<\/body>/is", $var, $match);
    9. $var = $match[0];
    10. ?>
    11. <form action="schreibtest.php" method="post" enctype="multipart/form-data">
    12. <textarea name="schreiben"><? echo $var; ?></textarea>
    13. <input type="submit" name="submit" value="submit" />
    14. <input type="hidden" name="step" value="2" />
    15. </form>
    16. <?
    17. }
    18. else
    19. {
    20. $getold = fopen ("../seite1.html","r");
    21. while ($line = fgets($getold,256)) {
    22. $var.=$line; }
    23. fclose($getold);
    24. $read= preg_replace("/<body>(.*?)<\/body>/is", stripslashes($_POST['schreiben']), $var);
    25. $write = fopen ("../seite1.html", "w");
    26. fwrite ($write, $read, strlen($read));
    27. fclose ($write);
    28. }
    29. ?>
    Alles anzeigen