我很想知道R是否可以使用它的eval()函数来执行由string提供的计算。 这是一个常见的情况: eval("5+5") 但是,而不是10我得到: [1] "5+5" 任何解决scheme
我只是想知道如果PHP有一个function,可以采取像2-1的string,并产生它的算术结果? 或者我将不得不使用explode()手动执行此操作以获取算术运算符左侧和右侧的值?
我知道Lisp和Scheme程序员通常会说,除非严格需要,否则应该避免使用eval。 我已经看到几种编程语言的相同的build议,但我还没有看到一个明确的反对使用eval的参数列表。 我在哪里可以find使用eval的潜在问题的帐户? 例如,我知道过程编程中的GOTO问题(使程序不可读,难以维护,难以find安全问题等),但是我从来没有看到反对eval的论点。 有趣的是,反对GOTO的同样的论点应该是有效的反对延续,但是我看到Schemers,例如,不会说延续是“邪恶的” – 你应该小心使用它们。 他们更有可能使用eval而不是使用代码使用代码(据我所知 – 我可能是错的)。
有几个关于如何避免使用eval(parse(…)) R-evalparse -是-经常欠佳 避免最声名狼藉-evalparse构build体 这引发了一些问题: 为什么具体应该避免eval(parse()) ? 而最重要的是,有什么危险? 如果代码不在生产中使用,是否有危险? (我在想,有任何回避意想不到的结果的危险,显然如果你不小心parsing什么的话,你会遇到问题,但是比get()更危险吗?
我有一个代码的地方eval()作为一个可能的解决scheme。 现在我从来没有必须使用eval() ,但是我已经遇到了很多关于潜在危险的信息。 这就是说,我对使用它非常谨慎。 我的情况是,我有一个用户input: datamap = raw_input('Provide some data here: ') 数据datamap需要成为一个字典。 我四处search,发现eval()可以解决这个问题。 我想我可能能够在尝试使用数据之前检查input的types,这将是一个可行的安全措施。 datamap = eval(raw_input('Provide some data here: ') if not isinstance(datamap, dict): return 我仔细阅读了文档,而且我还不清楚这是否安全。 eval是否在数据库variables被调用后立即评估数据? ast模块的.literal_eval()是唯一安全的选项吗?
我有一个脚本,它使用innerHTML将一些内容插入到一个元素中。 内容可能是例如: <script type="text/javascript">alert('test');</script> <strong>test</strong> 问题是<script>标签内的代码没有得到执行。 我GOOGLE了一下,但没有明显的解决办法。 如果我使用jQuery $(element).append(content);插入$(element).append(content); 脚本部分在被注入到DOM之前已经被eval了。 有没有人得到执行所有<script>元素的代码片段? jQuery代码有点复杂,所以我无法弄清楚它是如何完成的。 编辑 : 通过偷看到jQuery代码,我已经设法弄清楚jQuery是如何做到的,这导致了下面的代码: Demo: <div id="element"></div> <script type="text/javascript"> function insertAndExecute(id, text) { domelement = document.getElementById(id); domelement.innerHTML = text; var scripts = []; ret = domelement.childNodes; for ( var i = 0; ret[i]; i++ ) { if ( scripts && nodeName( ret[i], "script" ) […]
在所有这些年来,我一直在使用PHP进行开发,我一直听说使用eval()是邪恶的。 考虑下面的代码,使用第二个(更优雅的)选项没有意义吗? 如果没有,为什么? // $type is the result of an SQL statement // eg SHOW COLUMNS FROM a_table LIKE 'a_column'; // hence you can be pretty sure about the consistency // of your string $type = "enum('a','b','c')"; // possibility one $type_1 = preg_replace('#^enum\s*\(\s*\'|\'\s*\)\s*$#', '', $type); $result = preg_split('#\'\s*,\s*\'#', $type_1); // possibility two eval('$result = '.preg_replace('#^enum#','array', […]