2012-09-11 10 views
5

Ich arbeite mit einer Site, die auf einem benutzerdefinierten Templating-System basiert. Lassen Sie uns sagen, dass ich in einem Template-Tag verwenden können [custom_text] die folgende Ausgabe der gesamte Block von html wie diese, durch die Rich-Text-Editor des CMS definiert:Textblock mit beiden Anführungszeichen als Zeichenfolge

<b>Lorem ipsum dolor</b> sit amet, "consectetur adipisicing elit"<br /><br /> 
<b>sed doeiusmod</b> tempor incididunt ut's labore et dolore magna's aliqua. 

Bitte beachten Sie, dass es beide Arten von Anführungszeichen enthält drin. Ich bin nicht in der Lage, etwas, das aus dem Templating-System kommt, vorzuverarbeiten, außer es auf der Seite auszugeben, da das CMS mit Vorlagensystem codiert ist.

Jetzt muss ich diesen Block tatsächlich manipulieren, um zum Beispiel alle Zeilenumbrüche aus dem Code zu entfernen. Ich kann PHP auf der Seite verwenden, aber ich kann keine Zeichenfolge definieren, die diesen Codeblock enthalten würde. Wenn ich es so oder so mache:

die Anführungszeichen im Block kommen in die Art und enden die Zeichenkette vorzeitig. Gibt es einen offensichtlichen Weg, um dieses Problem zu behandeln?

+1

'addslashes()' hilft nicht? – hjpotter92

+0

Siehe http://stackoverflow.com/questions/5611468/is-there-a-php-function-that-only-adds-slashes-to-double-quotes-not-single-quote –

Antwort

3

Sie wissen nicht, warum ich nicht dachte ich schon, aber ich kann einfach die Heredoc-Syntax verwenden.

$string = <<<EOT 
[custom_text] 
EOT; 

wird den Fall lösen.

+0

Gute Antwort seine Arbeit –

0

Versuchen Sie dieses

<?php 
$string = "This string has 'single quotes'"; 
echo addcslashes($string, '"\\'); 
?> 

die Ausgabe wie Below

This string has 'single quotes' 

diese Antwort von dieser Verbindung Will Be

Click Here

+0

Dies hätte jedoch funktioniert Der Textblock, den ich in die Zeichenfolge einfügen muss, enthält bereits BEIDE Anführungszeichen, und ich kann ihn vor der Ausgabe nicht vorbearbeiten. Wenn ich einfache Anführungszeichen zu verwenden, waren die Zeichenfolge zu definieren, wäre es am Ende wie folgt: $ string = 'Lorem ipsum dolor sit amet, "consectetur adipisicing elit"

sed doeiusmod tempor incididunt ut des labore et dolore magnas aliqua. '; Wie Sie sehen können, schließt der Apostroph im Textblock effektiv das einfache Zitat der Zeichenkette. – prezes

+0

kann ich wissen, woher hast du die Zeichenfolge –