前提
PHPの配列をコメントアウト付きで出力したいので、hoge(); を実行してヒアドキュメントで出力しています。
###実現したいこと
こうして出力されたものをJSON.parseして、JSで配列として扱いたいです。
発生している問題・エラーメッセージ
JSON.parseができません。
該当のソースコード
PHPファイルから以下の配列を、コメントアウト付きで出力しています。
php
1hoge(); 2function hoge(){ 3 $str = <<<EOM 4 [ 5 [ 6 /* 7 コメント 8 */ 9 /* 10 コメント 11 ---------------------------*/ 12 // コメント 13 'key1'=>1, 14 // コメント 15 'key2'=>2, 16 17 /* 18 コメント 19 ---------------------------*/ 20 // コメント 21 'key3'=>3 22 ], 23 ]; 24EOM; 25 echo $str; 26} 27
上記PHPを出力するHTMLは以下です。
html
1<pre><?php print_r( hoge() ); ?></pre>
試したこと
上記$str ( preの中のテキスト ) をJSON.parseするために、変更箇所は以下3つだと考えています。
「=>」を「:」に変える
「// コメント」を削除
「/* コメント */」を削除
この3つを実行したのが以下コードです。
js
1 // preの中のテキスト 2 var str = $('pre').text(); 3 4 // 「=>」を「:」に変える 5 var tmp1 = str.replace(/^=>$/, ':'); 6 7 // 「// コメント」を削除 8 var tmp2 = tmp1.replace(/^//\s.+\n$/, ''); 9 10 // 「/* コメント */」を削除 11 var result = tmp2.replace(/^/*\n.+\n*/$/, ''); 12 13 // 結果 14 console.log(result);
ですが、JSON.parseが効かないようで、$strを配列にすることができません。
このようなときの解決策をご指南頂きたく存じます。
宜しくお願い申し上げます。
補足情報
尚、$strをJSで配列として扱いたいというのは、$strを以下resultにしてJSで扱いたいという意味です。
これを目指しているのが上記試したことにある3つの処理になります。
js
1 var result = [ 2 { 3 'key1': 1, 4 'key2': 2, 5 'key3': 3 6 }, 7 ];
回答4件
あなたの回答
tips
プレビュー