PHPで書き出したSQL文をjavascriptの関数に渡すなどしていて、
ダブルクォーテーションやシングルクォーテーションが4つ以上の入れ子になったときどのように表現すればよいのでしょうか?
例
$a = "<a onClick=\"test('SELECT * FROM table WHERE field = 'field'')\">text</a>";
*test()はjavascriptの関数とします。
このように入れ子が深くなっていったときの回避の方法やクォーテーションの使い方の規則などあれば教えてください。
No.1
- 回答日時:
???
入れ子自体よくないよ
というか切り分けがはっきりしてないね
PHPとしての最初のクォティションと最後のクォティションはそのままで、内側の同種クォティションはエスケープが基本だとして
書出された時に(PHPじゃなくてHTMLとしての姿で)
<a onClick="test('SELECT * FROM table WHERE field = \"field\"')">text</a>
または
<a onClick="test(\"SELECT * FROM table WHERE field = 'field'\")">text</a>
となれば良いというのは判る?
後は $a=""; の中身で衝突する「"」と「\"」という「文字列」をエスケープすれば良い事になるね。
それ以上の多段は、多分無理・・・
No.2ベストアンサー
- 回答日時:
単純な話#quot;をつかいます。
またPHPとjavascript間での調整なら、PHP出力するときに
ヒアドキュメント(例D)を使うとエスケープする必要がなくなります
<?
$a = "<a href=\"#\" onClick=\"alert('SELECT * FROM table WHERE field = \'field\'')\">textA</a><br>";
print $a;
$b = "<a href=\"#\" onClick=\"alert("SELECT * FROM table WHERE field = 'field'")\">textB</a><br>";
print $b;
$c = "<a href=\"#\" onClick=\"alert('SELECT * FROM table WHERE field = "field"')\">textC</a><br>";
print $c;
$d =<<<eof
<a href="#" onClick="alert("SELECT * FROM table WHERE field = 'field'")">textD</a><br>
eof;
print $d;
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- PHP PHP MySql ページング 2 2022/09/20 06:38
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【PHP】preg_replace() で正...
-
ヒットする初回のみ置換する方法
-
c# string型の変数に、ダブルク...
-
VBSで"をエスケープする文字は?
-
ダブルコーテーション(
-
VBAのコマンドボタンの文字列の...
-
テキストファイルから改行コー...
-
C++で空Enterの入力を判...
-
csobjというタグについて
-
LaTeX: captionの中で改行した...
-
VC++ マルチバイト文字とUniCod...
-
JAVA System.out.println の ...
-
fgetsとsscanf
-
エスケープ文字の復帰(¥r)と...
-
VBAでCSVをExcelに取り込む時に...
-
VB.net テキストボックス半角文...
-
VB6でブラウザのページソースを...
-
C++のctime関数復帰値の改行
-
正規表現での英字+ハイフンの...
-
エクセルのCOUNTIFが正しくカウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
VBSで"をエスケープする文字は?
-
PHP・Wordpress preg_replaceを...
-
文字列の置換をCStringで(C++)
-
○分から○時間○分に変換
-
文字列の括弧について(初心者)
-
近似した文字列を置換するエク...
-
PHPの¥
-
ダブルクォーテーションが置換...
-
php 正規表現で、\\マークを取...
-
(から)までの文字列を削除したい
-
文字列のアスタリスク置換
-
htmlspecialchars関数でエスケ...
-
nl2brが効かないのですが・・・
-
PHPでCSVを出力する際のセルに...
-
c# string型の変数に、ダブルク...
-
正規表現で<BR>の行を除外した...
-
ダブル、シングルクォーテーシ...
-
空白文字のカンマへの変換について
-
【PHP】preg_replace() で正...
おすすめ情報