問題タブ [eval]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP:evalを使用したincludeと同等
コードが同じである場合、次の間に違いがあるように見えます。
include 'external.php';
と
eval('?>' . file_get_contents('external.php') . '<?php');
違いはなんですか?誰か知っていますか?
include
正常に動作し、エラーが発生するため、2つが異なることはわかってeval
います。私が最初に質問したとき、それがすべてのコードでエラーを引き起こしたのか、それとも私のものだけでeval
エラーを引き起こしたのかわかりませんでした(そしてコードが編集されたため、エラーの意味を見つけるのは非常に困難でした)。ただし、答えを調べた結果、エラーが発生するかどうかは、のコードに依存するのではなくexternal.php
、php設定に依存することがわかりました(short_open_tag
正確には)。
jquery - JQUERY は文字列を評価します
このスクリプトをjqueryで評価したかった:
誰でも私を助けることができますか?私はこれに非常に慣れていません。
ありがとう
javascript - 関数を呼び出したいだけの場合、eval()のより安全な代替手段は何ですか?
PHPが持っていることは知ってcall_user_func
いますが、JavaScriptに似たようなものがあるのではないかと思っていました。たとえば、呼び出したいメソッドは次のとおりです。object.set$fieldID($fieldValue)
1行のコードを適切に実行するためだけに、if / else/switchブロックを通過したくありません。
それが役に立ったら、私はjQueryを使用しています。
python - \r\n vs \n Python eval 関数
eval 関数が \r\n では機能せず、\n で機能する理由。たとえば、 eval("for i in range(5):\r\n print 'hello'") は機能しません eval("for i in range(5):\n print 'hello'") は機能します
replace("\r","") を使用して問題の原因が修正されていないことはわかっていますが、誰かがなぜ起こるのか知っていますか?
--編集-- おお!すみません、まさに、私は幹部を意味していました。POST 経由で HTML テキストエリアから読み取っているため (Linux ボックスを使用しています)、キャリッジ リターンが表示されます。みんなのおかげで、より明確になりました。
perl - Perlで特殊変数$@はどういう意味ですか?
次のコードを理解しようとしています。
php - eval() を使用するリスクなしに、さまざまな PHP 関数の呼び出しを MySQL データベースに保存する方法はありますか?
get_menu()、get_title()、get_recent() などの多数の関数を含む特定のプロジェクト用に非常に基本的な CMS を構築しています。ただし、ページの読み込み中にエコーされるテンプレートを保存できるようにしたいと考えています。 、MySQL データベースに上記の関数が含まれています。
可能な関数ごとに str_replace を実行するのはピタで、eval() を使用すると危険な場合があることに気付きました。これを行うためのより良い、より効率的な方法はありますか? これがTextpatternでテンプレートが設定されている方法であるため、それができると確信しています。
c# - C# での JS Eval の実装
重複の可能性:
C# eval と同等ですか?
C#でJS eval()を実装するにはどうすればよいですか可能であれば例を提供してください..ありがとう
javascript - JavaScript eval() を使用して作成された無名関数の実行
関数とその内容を文字列として持っています。
ここで、実際にその関数を変数に取得するために eval() を実行します。
私の記憶が正しければ、Chrome と Opera では、単純に
その関数が呼び出され、アラートが表示されました。
しかし、他のブラウザではそうではありませんでした。何も起こらなかった。
どちらが正しい方法であるかについての議論はしたくありませんが、どうすればこれを行うことができますか? variable(); を呼び出せるようにしたいです。その変数に格納されている関数を実行します。