只是试图找出执行数学运算的正确和更安全的方式作为字符串传递.在我的场景中,它是从图像EXIF数据中获取的值.
经过一些研究,我发现了两种方法.
首先,使用eval:
function calculator1($str){
eval("\$str = $str;");
return $str;
}
Run Code Online (Sandbox Code Playgroud)
第二,使用create_function:
function calculator2($str){
$fn = create_function("", "return ({$str});" );
return $fn();
};
Run Code Online (Sandbox Code Playgroud)
这两个示例都需要清理字符串以避免恶意代码执行.有没有其他或更短的方式这样做?
我有一个结果集,它是一个对象数组.我需要克隆它,以便我可以对其进行更改,而无需触及原始数据.
var data = w2ui.grid.records,
exclude = Array('recid', 'w2ui'); // Exclude these data points from the pivot
// Modify our tempData records to remove HTML
$.each(data, function(key, value) {
$.each(value, function(_key, _value) {
if(jQuery.inArray(_key, exclude) != -1) {
delete data[key][_key];
}else{
data[key][_key] = $('<div>'+_value+'</div>').text(); // <div></div> for those which are simply strings.
}
});
});
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我创建了一个名为的变量data并将其设置为我的"源数据".
我希望能够对这个新的数据变量进行更改,但看起来在对其进行更改时,源数据正在被更改(w2ui.grid.records).
有没有正确的方法来克隆这个集合,所以我可以有一个新的数据实例来修改?
我需要placeholder在输入字段中放入一个长文本.
但是,placeholder由于文本很长,将会削减.
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<label for="password">
<input id="password" name="user[password]" placeholder="Password (at least 8 letters, numbers, or punctuation marks)" size="30" type="password">
</label>Run Code Online (Sandbox Code Playgroud)
我必须触发一个zip文件的下载(Zip文件在我的数据文件夹中).为此,我正在使用代码,
$file = 'D:\php7\htdocs\Project\trunk\api\data\file.zip';
header('Content-Description: File Transfer');
header('Content-type: application/zip');
header('Content-disposition: attachment; filename=' . basename($file) );
readfile($file);`
Run Code Online (Sandbox Code Playgroud)
这正在我的预期核心PHP中工作.但是当我在Zend中使用相同的代码时,打印出如下内容,
PKYsVJ)~?? study.xlsPKYsVJs?????+
tutorial-point-Export.xlsPKYsVJn??? 8??Zabc.xlsP
在内容之间我可以看到zip中所有文件的名称.但它没有下载.
在我意识到这不起作用之后我开始搜索它并从堆栈流程中找到一些解决方案
尝试1:ob在每个随机行中添加不同的标题元素和函数
header('Content-Transfer-Encoding: binary');header('Expires: 0');header('Cache-Control: must-revalidate, post-check=0, pre-check=0');header('Pragma: public');header('Content-Length: ' . $file_size);ob_start();ob_clean();flush();所有这些都是从不同的堆栈溢出问题和答案尝试并具有相同的结果
尝试2:PHP正在读取文件而不是下载.这个问题没有任何公认的答案(他在询问核心php,但我只有zend的问题).我尝试了所有这些,但它没有用.
尝试3:更改.htaccess.之后我认为这是我的.htaccess的一个问题,并找到了更改.htaccess文件的答案.
<FilesMatch "\.(?i:zip)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
这也给了我相同的结果.
尝试4:在Zend中使用下载功能.我在这个问题的答案中尝试了所有的zend函数.但是给我一个空输出,即使文件没有被读取.
尝试5:根据答案删除php标记之前和之后的所有不需要的空格
有没有其他方法可以在ZF2框架中触发下载?
编辑
以下是我的确切功能.这是GET(API)函数,
public function getList(){
try{
//here i am getting the zip …Run Code Online (Sandbox Code Playgroud) 我想向控制器发送Ajax请求,我在客户端这样做
jQuery.ajax({
url: "public/visits/visit/get-visits",
type: "POST",
dataType: 'json',
data: data,
success: function(data){
alert(data)
},
error:function(){
alert("fail :(");
}
});
Run Code Online (Sandbox Code Playgroud)
在服务器端,我处理请求作为其他请求
public function getVisitsAction() {
if (isset($_POST)) {
$mapper = new Visits_Model_VisitsMapper();
$allVisits = $mapper->getAllVisits();
echo json_encode($allVisits);
}
Run Code Online (Sandbox Code Playgroud)
当我调用该操作时,会发生失败警报,当我通过防火错误检查出来时,我发现它将json数据返回给客户端到页面get-visit.phtml.
如何从发送json请求的页面处理成功函数中的响应并将其重定向到get-visit.phtml页面?
我有以下代码:
$('button').click(function() {
$('#parent').append('<div>element</div>');
});Run Code Online (Sandbox Code Playgroud)
#parent {
height: 200px;
width: 100px;
border: 1px solid #ccc;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="parent"></div>
<button>
Add
</button>Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/8ybnycxv/1/
单击该按钮时,我想将一个div元素附加到#parent.然而,如果没有元件在#parent又,元件将被开始于添加底部的#parent.我怎样才能做到这一点?
编辑:添加了演示图片