• ベストアンサー

JavaScript圧縮で、PHP含むことは可能?

JavaScript圧縮する際、PHP記述も一緒に圧縮することは可能でしょうか? <script> var hoge = "<p><?php 何らかのPHP処理; ?><p>"; </script>

  • re97
  • お礼率80% (601/744)

質問者が選んだベストアンサー

  • ベストアンサー
noname#212058
noname#212058
回答No.2

『JavaScript圧縮の処理内容』、『圧縮に入れようとしている PHP記述の内容』によります。 1. JavaScript圧縮の処理内容  JavaScript圧縮の処理が『JavaScript コード内の空白や改行  を削除して文字数を減らす』処理であれば、後述の 2. の問題  に抵触しなければ PHP記述があっても大丈夫です。  JavaScript圧縮の処理が「難読化」や「エンコード」などの  処理も実行している場合は、PHP記述が壊されるのでダメです。  (PHPとして動かなくなりますので) 2. 圧縮に入れようとしているPHP記述の内容  JavaScript圧縮は、対象文字列が「JavaScriptのコード」で  あることが大前提です。従って、PHP記述を含んだコードが、  そのまま JavaScript コードとして成立するか (PHP記述を  含んだまま動かしても構文エラーにならないか) が鍵になるで  しょう。  質問者さんの例の場合は、PHP記述は ” で囲まれて文字列に  なってるので、これは構文エラーになりません。なので圧縮  できます。  以下のような場合は、動かすと構文エラーになります。従って  このようなPHP記述が記載されたコードは圧縮できません。  <script> if (foo == <? PHP処理 ?>) {/*省略*/} </script>

re97
質問者

お礼

回答ありがとうございました 参考になりましたー

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5085/13293)
回答No.1

PHPのプログラムファイルで ====== <script> var hoge = "<p><?php echo 'hoge'; ?><p>"; </script> ====== と書いておけば、出力される際は ====== <script> var hoge = "<p>hoge<p>"; </script> ====== となって出ていきますよ。

re97
質問者

お礼

回答ありがとうございましたー

関連するQ&A

  • javascript php 連携

    よろしくお願いします。 javascriptの『onchange』値をPHPの変数に入れたいと苦戦しています。 <html> <head> <script type="text/javascript"> function hoge1(){ var x = $('str1').options[$('str1').selectedIndex].text; やりたいことはここでPHPの変数『list_a』にjavascriptの変数『x』の値を入れたいです。 } </script> </head> <body> ここに結果表示 <?= $list_a; ?> <select id="str1" name="str1" onchange="hoge1()"> <option>hoge1</option> <option>hoge2</option> <option>hoge3</option> </select> </body> </html> よろしくお願いいたします。 ちなみにAjaxは全くわかりませんのですいません。。。

    • ベストアンサー
    • PHP
  • javascriptとphpの変数のやり取り

    ある該当ページ(mtの検索結果ページ)が拡張子をphpにできず、 <script src=hogehoge.php></script>でphpファイルを読み込んで、 実行したいと思います。 phpを使用している理由はある変数を取得したいのですが、 今回は関係ないので割愛します。 ■以下ソース ・該当ページ(mt-search.cgi) <html> <head> <title>hoge</title> <script type="text/javascript" src="/hogehoge.php"></script> </head> <body> <script> document.write("<p>"+str+"</p>"); </script> </body> </html> ・phpファイル(hogehoge.php) <?php if(test == test){ $str = "成功" }else{ $str = "失敗"; } ?> <script type="text/javascript"> <!-- var str= "<?php echo $str?>"; --> </script> このようにしているのですが、 うまく出力されません。 php側の出力はうまくいっているようなのですが、 ブラウザ側の方でちゃんと変数がわたっていないようです。 画面は真っ白です。 ご教授お願いいたします。

  • PHPを習おうと思っているのですが、Javascriptも習おうか迷っ

    PHPを習おうと思っているのですが、Javascriptも習おうか迷っています。 PHPとJavascriptは記述方法など、同じスクリプト言語ということで似てるのでしょうか。 JavascriptでできることはPHPでもできますか。 どちらか片方をマスターしていれば、たいていのWebアプリケーションを作成可能でしょうか。 両方習うべきか、PHPだけでいいか悩んでます。 アドバイスいただけるとうれしいです。

    • ベストアンサー
    • PHP
  • PHPの配列をjavascriptへ渡したい

    PHPの配列をjavascriptの配列に渡したいのですがやり方がわかりません。 変数の渡し方ならわかるのですが配列はどう渡せばいいのでしょうか? for文を使って渡せばいいと思うんですがどうやればいいか分かりません。 <?php $filedata=file("data.txt");//javascriptに渡したい配列 ?> <script language="javascript"> var a=new Array();//PHPの配列をこの配列に入れたい </script> 何方か教えてください。

    • ベストアンサー
    • PHP
  • javascriptのクラスの処理について

    javascriptのクラスを利用した処理で分からない所がありますので 教えて下さい。 最初に 下記の「1.の方法」でhtml側にjavascriptを呼び出す記述を して動かしていましたが、「2.の方法」に変更しなければならなく なりました。 ところが、「2.の方法」でやりますと、メインのhtml側がフリーズ してしまいます。 調べてみますと、メモリーを食いつぶしていますので、何か永久ループの ような状態に陥っているようです。 こような場合、何かやり方がおかしいのでしょうか? ご存知の方がいらっしゃいましたら、ご教授お願いいたします。 === 1.の方法 ===(問題なく動きます)================= ---ソース(index1.html) <script type="text/javascript" src="js1.js"></script> <script type="text/javascript"> hoge.create( abc, "def"); </script> ---ソース(js1.js) var hoge = {   xxx: ~~,   yyy: ~~   create: function(val1,val2) {     ~略~ }; === 2.の方法 ===(フリーズしてしまいます)=========== ---ソース(index2.html) <script type="text/javascript" src="js2.js"></script> <script type="text/javascript"> hoge_sub(); </script> ---ソース(js2.js) function hoge_sub(){   hoge.create( abc, "def"); } var hoge = {   xxx: ~~,   yyy: ~~   create: function(val1,val2) {     ~略~ };

  • PHP内にJavaScript

    下記のようなはじめての訪問者に対してようこそ!と表示するJavaScriptをPHP内で動かすにはどのように記入すればよいのでしょうか? ==================================================== <script language="JavaScript"> var key = "freekeyword"; var n = 0; var cookies = document.cookie.split("; "); for(var i=0;i<cookies.length;i++){ var str = cookies[i].split("="); if(str[0] == key){ // n = str[1]; } } window.onload = function() { if(n == 0){ document.getElementById('welcome').innerHTML = 'ようこそ!'; } n++; setCookie(key,n); } function setCookie(key,val){ document.cookie = key + "=" + escape(val) + "; "; } </script> ==================================================== このスクプリトを下記<head>内にどのように記入すればよいので しょうか? PHPの文法などほとんど分からないレベルなのでそもそも質問 自体間違ってるかもしれませんがPHP内で同様の動作をさせたい のです。よろしくお願いします ==================================================== <?php echo ' <html> <head> </head>'; echo ' <body> <div id="welcome"></div> </body></html>'; ?> ====================================================

    • ベストアンサー
    • PHP
  • MySQL,PHP,javascript,mapへ

    MySQLのデータベースレコードにある住所をGoogle Mapsに表示させたいです。 手順1) 住所を検索するphpを実行し,結果を JavaScript に渡す。 手順2) JavaScriptで Google Map API を呼び出す。 上記の方法を考えたのですが、 MySQLの接続や、データを検索するプログラムが分かりません。 以下のコードのどこにどのように入れれば宜しいでしょうか? <?php $txt = $_POST['txt']; $txt = mb_xxx ( $txt ); ?> <script type="text/javascript"> <!-- function hoge () { var txt = "<?= $txt ?>"; } //--> </script> プログラム参考にしたサイト http://d.hatena.ne.jp/ese-se/20070823/1187870469 ご回答よろしくお願いします。

  • javascript関数の戻り値でphpの条件分岐

    こんばんは。 またまたプログラミングで詰まってしまいました・・・。 <?php    echo "<script> funcJS(); </script>"; //javascriptの関数。戻り値true/false    if(funcJS()の戻り値がtrueかどうか){       <~phpの処理~>     } ?> のようなプログラムがあったとして、funcJS()の戻り値の値によって、『phpの処理』を行うかどうかを決定したいのですがそのアルゴリズムが思いつきません。 色々と試行錯誤はやってみて、 (1)phpの変数にfuncJS()の戻り値を格納して、if文で条件分岐  $value = "<script> funcJS(); </script>";   しかし、これは$valueに戻り値を入れることができませんでした。 (2)javascript変数に戻り値を格納して、javascript内のif文で条件分岐 <?php    echo "<script> var value=funcJS(); </script>"; //javascriptの関数。戻り値true/false    echo "<script> if(value == 'true'){ </script>";       <~phpの処理~>    echo "<script> } </script>"; ?>  これも"}"がないと怒られてしまいました。 自分で思いつく限りは試してみたのですが、他に方法が思い浮かばず頭を抱えている状態です。 何か良い方法を知っている方、思いついた方、よろしくお願いします。

  • javascript と php とでのデータの受け渡し

    既出の質問かもしれませんが、どの回答を読んでもいまいち理解できなかったので質問させて下さい。 phpからjavascriptへ、その処理結果をphpに送りたいと考えております。 まず phpの変数のデータをjavascriptでクライアント側で処理させるために、 print(<script type='text/javascript'>);~などなど、 printを使ってphpの変数を入れ込んだスクリプトを出力しています。 そして、出力したjavascriptの中にクライアント側の処理後のデータ をphpに送るために、 XmlHttpRequestのopenメソッドで("GET",url,true)とし、 urlには"***.php" + "?a=" + aの値 をいれて request.send(null);で送信するようにしています。 最後に、送信先のphpで $a = $_GET["a"];として受け取ろうとしています。 ちなみに、これらは全て同一ファイル上に書いてあり、 XmlHttpRequestのopenメソッドのurlには、 そのファイル自身を記述してあります。 ブラウザでアクセスしてソースを見てみると、 javascriptは記載されていますが、処理がされていないようで、よって 最後にGETでデータも取得がされていないようです。 そもそもこういったことは可能なのでしょうか? 自分の考え方は間違っているのでしょうか? javascriptもphpも初心者なもので、考え方があっているのかいないのかも 判断できない状況です。また、このjavascriptが何をきっかけに実行されるようにすればいいのかもよくわかりません。 それでは、宜しくお願い致します。

  • Ajax以外で、JavaScriptからPHPへ渡

    Ajax通信以外で、JavaScriptからPHPへ変数(配列)を渡したいのですが、 可能でしょうか? 下記のような状態の時、js変数dataを、Ajax通信を利用せずにPHP変数として取得したいのですが、どうすればよいでしょうか? JavaScript関数の中で、PHPフォームの送信ボタンをクリックさせる(ような)ことは出来ないのでしょうか? <button type="button" onclick="testsubmit();">送信</button> <script> function testsubmit(){  js処理;  var data = ★★; } </script> ■最終的にやりたいこと ・ボタンをクリックしたら、js処理で取得したjs変数(配列)を、Ajax通信を利用せずに、PHP変数として受け取りたい ・それを出来れば1クリックで処理したい