Markus: PHP / JSON - HTML nach Javascript umwandeln?

Liebe Leute,

ich suche verzweifelt nach einer PHP-Library, die folgende schlichte Aufgabe erfüllen soll: ich übergebe HTML-Code und die Library verpackt diesen in einfache Anführungszeichen, so dass ich das Ganze HTML-Gedöns dann als Javascript-Variable zur Verfügung stellen kann.

Also in etwa so:

$html = '
<html>
<body>
  <div onclick="alert('hallowelt')"></div>
</body>
</html>';

$output = htmlToJS($html);
echo $output;

Und dann sollte so etwas rauskommen:

document.writeln('<html>');
document.writeln('<body>');
document.writeln('<div onclick="alert('hallowelt')"></div>');
document.writeln('</body>');
document.writeln('</html>');

Vielleicht kennt jemand ja eine fertige Klasse, die das kann?

Herzlichen Dank und einen schönen Tag noch!
Markus

  1. Hallo Markus

    ich suche verzweifelt nach einer PHP-Library, die folgende schlichte Aufgabe erfüllen soll: ich übergebe HTML-Code und die Library verpackt diesen in einfache Anführungszeichen, so dass ich das Ganze HTML-Gedöns dann als Javascript-Variable zur Verfügung stellen kann.

    […]

    Vielleicht kennt jemand ja eine fertige Klasse, die das kann?

    Eine Klasse hierzu kenne ich nicht. Aber was spricht gegen folgendes Vorgehen?

    Trenne die ursprüngliche Zeichenkette am Zeilenumbruch auf.
    Durchlaufe den resultierenden Array und ergänze jeden Wert um den Präfix „document.writeln('“ und den Suffix „');“.
    Füge den Array wieder zusammen.

    Wo du hier aber JSON und (JS-?)Variablen verwenden willst, ist mir nicht ersichtlich.

    Einen schönen Sonntag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. Hallo Ashura,

      yo, das habe ich mir nun gebastelt, scheint zu funktionieren:

      function html2js($html, $xhtml=0) {

      $ret = array();
              $lines = explode("\n", $html);
              $i = 0;
              foreach ($lines as $l) {
                  if (trim($l) != '') {
                      $ret[$i] = 'document.writeln('' . str_replace("'", "'", ltrim($l)) . '');';
                      $ret[$i] = str_replace('</', '</', $ret[$i]);
                      $i++;
                  }
              }
              return implode("\n", $ret);
          }

      Und ja, das mit dem "JSON" war Quatsch :)
      Markus