5

ワードプレスでショートコード実行プラグインを使用しています。

これにより、次のようなショートコードを書くことができます [email_spamproof]

しかし、スクリプトをエコーし​​ようとしています。下記を参照してください...

<?php

echo '<script type="text/javascript">
    <!-- 
    // spam protected email
    emailE=("enquiries@" + "example.co.uk")
    document.write('<a title="E-mail Example" href="mailto:' + emailE + '">' + emailE + '</a>')
     //-->
    </script>
    <noscript>
        <span class="spam-protected">Email address protected by JavaScript. Please enable JavaScript.</span>
    </noscript>';

?>


今、あなたはおそらく私の問題をすでに見ているでしょう。

通常、私がものをエコーするとき、それはこのようになります...echo 'hello';

そして、同じアポストロフィを使用して文字列を分割します-このように...
echo 'hello ' . php_name() . ' and friends'

私の問題

このスクリプトは、スクリプト変数を文字列に追加するという同様の方法も使用しますが、これらのスクリプトのアポストロフィは PHP のアポストロフィと混同され、エコーされた文字列を壊します。

どうすればこれを回避できますか?

ありがとう

4

6 に答える 6

6

正しいコード:

<?php

echo "<script type='text/javascript'>
    <!-- 
    // spam protected email
    emailE=('enquiries@' + 'example.co.uk')
    document.write('<a title='E-mail Example' href='mailto:' + emailE + ''>' + emailE + '</a>')
     //-->
    </script>
    <noscript>
        <span class='spam-protected'>Email address protected by JavaScript. Please enable JavaScript.</span>
    </noscript>";

?>
于 2015-02-25T17:57:02.890 に答える
2

\文字はエスケープ文字です。文字列を区切るために使用される文字の内部使用ごとに 1 つ追加します。

または、 HEREDOCを使用します。

于 2012-08-07T11:43:08.263 に答える
2

簡単です。JavaScript コードを新しいファイルに保存し、これを使用してロードします。

include('myjavascript.php');

次に、includeオプションを a として使用します。これは、Web がコードを HTML として認識し、必要なときに( のように)echo実行するためです。phpecho

于 2013-08-19T13:34:30.683 に答える
0

javasript コードに " を記述し、php エコーで単一引用符 (') のみを使用できます。

より適切な方法は、JavaScript コード " \' " (二重引用符なし)でエスケープ文字を使用することです。

于 2012-08-07T11:43:39.180 に答える
0

それらをエスケープしてから、変数を連結する必要があります。

(また、あなたが気付いているかどうかはわかりませんが、JavaScriptのコメントアウトされたセクションをエコーし​​ています)

echo '<script type="text/javascript">    
  <!--      // spam protected email     
  emailE=("enquiries@" + "example.co.uk")     
  document.write(\'<a title="E-mail Example" href="mailto:'.emailE.'">'.emailE.'</a>\')      
  //-->     
  </script>     
  <noscript>         
  <span class="spam-protected">Email address protected by JavaScript. Please enable JavaScript.</span>     
  </noscript>'; 
于 2012-08-07T11:44:39.587 に答える
0

バックスラッシュでエスケープするか、次をecho 'It\'s cold';使用できますheredoc

echo <<<END
lots of text here
END;
于 2012-08-07T11:45:20.443 に答える