Php 如何在两个文件中使用变化的变量
所以我有一个变量,比如$mapname=date'YmdHis';,此变量每秒更改一次。。我想在跨文件中使用它,但问题是日期每秒都会更改,而且两个不同的文件不会同时执行脚本 因此,当我提交表格时,我会得到两个文件夹,例如:20150113132538和20150113132547。脚本检查是否存在基于$mapname的文件夹。但是,由于一个脚本比另一个脚本慢,这取决于上载速度,因为它上载文件,所以会创建一个新文件夹,因为该文件夹不存在 有人能解决这个问题吗 这是两个脚本中的代码,require date.php基本上就是把$mapname=date'YmdHis'放在这里;在文件中 下面的脚本由以下脚本调用:Php 如何在两个文件中使用变化的变量,php,global-variables,Php,Global Variables,所以我有一个变量,比如$mapname=date'YmdHis';,此变量每秒更改一次。。我想在跨文件中使用它,但问题是日期每秒都会更改,而且两个不同的文件不会同时执行脚本 因此,当我提交表格时,我会得到两个文件夹,例如:20150113132538和20150113132547。脚本检查是否存在基于$mapname的文件夹。但是,由于一个脚本比另一个脚本慢,这取决于上载速度,因为它上载文件,所以会创建一个新文件夹,因为该文件夹不存在 有人能解决这个问题吗 这是两个脚本中的代码,require
<script type="text/javascript">
function SaveIt() {
event.preventDefault();
var myDrawing = document.getElementById("simple_sketch");
var drawingString = myDrawing.toDataURL("image/png");
var postData = "canvasData="+drawingString;
var ajax = new XMLHttpRequest();
ajax.open("POST",'saveimage.php',true);
ajax.setRequestHeader('Content-Type', 'canvas/upload');
ajax.onreadystatechange=function()
{
if (ajax.readyState == 4)
{alert("image saved");}
}
ajax.send(postData);
}
</script>
^这会上传多张图片
图像大小比画布大,因此画布脚本在1/2秒内加载,而上载大约需要9/10秒。。因此,请根据当前日期创建两个不同的文件夹。在浏览器中访问的脚本中设置$GLOBALS['mapname',],并从其他脚本中使用它,我认为您需要或包含在第一个脚本中
变量将在整个请求中保留其内容。您甚至可以使用常量来防止覆盖它,如下所示:
if(!defined('MAPNAME')) {
define('MAPNAME', date('YmdHis'));
}
有什么代码可以帮助我们吗?又名一个例子,我将在sec2中发布它,脚本执行意味着2个请求。在PHP等无状态环境中,任何变量(全局变量或其他变量)都不会保留其值。也许一个会话可以帮助解决这个问题,或者将mapname放入一个隐藏变量中,作为页面呈现时间与表单提交时间的对比。@Jonnycake:磁盘I/O仍然是一个主要瓶颈。。。老实说,使用会话,而不是临时文件。此外:您将如何区分哪些用户正在上载哪些文件?是否为每个用户创建临时文件?那会很糟糕,我知道,但我不认为这里是这样,他只是不清楚。请记住,他说的是一个单一的表单提交。
require_once "date.php";
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
$path = "" . $upload_dir . "/" . $mapname . "/"; // Upload directory
// Loop $_FILES to execute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
elseif(!$_POST["fancier"]){
$message[] = "Please fill in your name.";
continue;
}
else{ // No error found! Move uploaded files
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
if (file_exists($path.$name)) {
$path_parts = pathinfo($name);
$name = $path_parts['filename'] . "_" . date('ynjGis') . "." . $path_parts['extension'];
}
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name)) {
$count++; // Number of successfully uploaded files
}
}
}
}
}
if(!defined('MAPNAME')) {
define('MAPNAME', date('YmdHis'));
}