• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] [JS] - unterminal string literal

HTML 4 YOU

New member
Hey !

Ich habe ein Problem, und zwar lese ich in einer PHP eine Datei (ist ein Quelltext) aus und fülle den dort enthaltenen Text in eine Textarea, allerdings nicht mit PHP, sondern mit JS über das onclick-Event. Der dann entstehende Code sieht wie folgt aus:

HTML:
<a href="#" onclick="document.getElementById('highlightbox').innerHTML ='CODE'; document.getElementById('highlightbox').style.display = 'block'; return false;">LINK</a>

Wenn ich aber einen Code mit Zeilenumbrüchen habe, wird er ja so:

HTML:
<a href="#" onclick="document.getElementById('highlightbox').innerHTML ='CODE
CODE
CODE'; document.getElementById('highlightbox').style.display = 'block'; return false;">LINK</a>

Und dies wird als Fehler erkannt, weil kein endendes String Literal vorhanden ist, da ja die Zeile gebrochen wird. Deswegen benutze ich immer die PHP Funktion nl2br(), aber iwie lässt sie Lücken aus, denn das Endergebnis sieht nacher so aus:

HTML:
<a href="#" onclick="document.getElementById('highlightbox').innerHTML = 'Test<br />
<br />
Test<br />
<br />
<br />
Test'; document.getElementById('highlightbox').style.display = 'block'; return false;">Test</a>

Wie man sieht, wandelt es zwar um, aber die \nl bleiben ummer noch da :(

Hier die entscheidensten Code-Schnipsel:

Stück aus AJAX Datei erstellung:
PHP:
$sourcecode = htmlentities(nl2br($_POST['sourcecode']));

// Weiter unten

if(!file_exists('/********/projekte/'.$projektlink.'/sources/'.$filename)) {
        $file = fopen('/*******/'.$projektlink.'/sources/'.$filename, 'w+');
        fwrite($file, $sourcecode);

        if(!$file)
            echo 'Es ist ein Fehler beim Speichern der Datei aufgetreten, bitte versuchen Sie es erneut.';
        else {
            fclose($file);
            echo 'Ihre Datei wurde erfolgreich erstellt.';
        }

Stück aus der AJAX-Auslesung:
PHP:
for($i = 0; $i < count($files); $i++) {
            echo '
                <tr>
                    <td><a href="#" onclick="document.getElementById(\'highlightbox\').innerHTML = \''.file_get_contents('/************/projekte/'.$projektlink.'/sources/'.$files[$i]).'\'; document.getElementById(\'highlightbox\').style.display = \'block\'; return false;">'.preg_replace('/\.txt/', '', $files[$i]).'</a></td>
                    <td>'.convertFilesize(filesize('/*********/projekte/'.$projektlink.'/sources/'.$files[$i]), 4).'</td>
                </tr>
                ';
        }


Ist das immer so? Wie kann ich das Problem lösen?

Hoffe ihr könnt mir helfen

LG HTML 4 YOU
 
Ich meinte eher so:

PHP:
preg_replace('/\s+/', '', 'Dein Text');

Also, nachdem du nl2br() benutzt hast.
 
Zurück
Oben