2012-09-11 18 views
5

私はいくつかのカスタムテンプレートシステムに基づいているサイトで作業しています。テンプレートに、私はタグを使用することができることを言ってみましょう[custom_text]出力CMSのリッチテキストエディタを使用して定義され、このようなHTMLのブロック全体を、なる:両方のタイプの引用符を文字列として含むテキストブロック

<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. 

が、それは引用符の両方のタイプが含まれていることに注意してくださいその中に。テンプレートシステムを持つCMSがエンコードされているので、実際にページに出力する以外のテンプレートシステムから出てくるものは、あらかじめ処理することができません。

これで、コードからすべての改行を削除するなど、実際にそのブロックを操作する必要がありました。私はページ上でphpを使うことができますが、そのコードブロックを含む文字列を定義することはできません。私はそれをどちらかの方法で行う:

$string = "[custom_text]"; 
$string = '[custom_text]'; 

ブロックの引用符が途中で来て、文字列を早く終了させます。この問題を処理する明確な方法はありますか?

+1

'addslashes()'は役に立たないですか? – hjpotter92

+0

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

答えて

3

は私が持っていない理由を知ってはいけない。このリンクから、この一つ

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

出力がされるよう

This string has 'single quotes' 

以下は、この回答をお試しください前にこれを考えましたが、私は単にheredoc構文を使うことができます。

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

がこの問題を解決します。

+0

良い答えその作業 –

0
+0

これはうまくいきました文字列に入れる必要があるテキストのブロックには、すでに両方のタイプの引用符が含まれており、出力前に前処理することはできません。私は、文字列を定義するために、単一引用符を使用した場合、それはこのように終わるでしょう: $文字列= 'Loremのイプサムの悲しみはincididunt UTのlaboreらdolore tempor

SED doeiu​​smod "consectetur adipisicing ELIT"、AMET座りますマグナのaliqua。 '; ご覧のとおり、テキストブロック内のアポストロフィは、文字列定義の一重引用符を実質的に閉じます。 – prezes

+0

私は文字列をどこから取得したかを知ることができます –

関連する問題