Adobe Dreamweaver CCでPHPのヒアドキュメント時のシンタックスカラーリングにまつわるもやもや

どうも、今日はウェブデザイナーとしてのボクちんが、いつもこのブログを見てくれているウェブデザインキッズたちに感謝の気持ちを込めて、とても為になるtipsを教えるぜ!!というか、このブログを見てくれているウェブデザインキッズが実在するのかどうがわかりませんが、ボクがいつも使っているAdobeのDreamweaverCC(以下DW)というWebオーサリングアプリケーションがあるのですが、そのアプリケーションで見つけたハックを書き留めたいと思います。

dwjs

PHPでWEBサイトを構築する際によく利用するヒアドキュメントですが、DWで使うと時々シンタックスカラーリングがおかしな状態になることがあります。

いろいろな状態でカラーリングエラーが起こるようなのですが、ボクが経験した中では殆どの場合、Javascriptの閉じタグが原因でカラーリングエラーが起こっているようでした。

上の図でも、3行目の</script>のところからカラーリングがおかしくなってるのがわかると思います。(見づらい場合は図をクリックして拡大してください。)

dwhtml

ちなみに、PHPを?>で一旦閉じて、以降にHTMLタグを書き込んだ場合はこのエラーは起こりません。

たぶん、原因はDWがヒアドキュメント内であるにもかかわらず、通常のHTMLでの記述と認識してまうような何かがあるのでしょう。

まあ、ヒアドキュメントでJavascriptを使わなければこのエラーは起こらないのですが、ヒアドキュメントはHTML内にPHPの変数を直接入れられるしsprintfとかにも使えるので超絶便利なので、これを使わないなんてもったいなさすぎるので、何かいい手はないものかと、考えている間に時は過ぎ、ガンプラを作る作業に明け暮れ、カラーリングエラーのことなんてすっかり忘れてしまった頃に、ふと、思いついたのです。

dwjsclose

どうでしょうか、シンタックスカラーリングが正常に機能しています!これです!世界中のウェブデザインキッズが追い求めてきたヒアドキュメントの未来がここにあるのです!

仕組みはとても簡単です。ヒアドキュメントは変数を埋め込めるというのが解決の鍵になりました。

まず、2行目の

$scriptClose = “</script>”;

を見てください。Javascriptのとじタグを変数にしました。

そして、ヒアドキュメント内4行目から8行目までの通常は</script>を書き込む部分に、この$scriptClose変数を入れてやるとシンタックスカラーリングを回避できるのです。

原因が</script>にあるのであれば、ヒアドキュメント内に直接書き込まずに、変数にしてあげればよかったんです。

さあ!今日からウェブデザインキッズ諸君もこのハックを存分に利用し、応用し、ヒアドキュメントライフを謳歌くれたまえ!!フハハハ!(キャラ定まらず)

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください