php 将 javascript 变量回显到 file.txt
php echo a javascript variable to file.txt
我有这段代码可以很好地获取用户时区并在 php 中回显。之前还有一条提示信息。
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js">
</script> <script> var timezone =
Intl.DateTimeFormat().resolvedOptions().timeZone; alert(timezone);
</script>
<?php
$time= "<script>document.writeln(timezone);</script>";
echo $time;
我想将此回显存储在文件中 time.txt
我试过这个:
$file_name = 'time.txt';
//opens the file.txt file or implicitly creates the file
$myfile = fopen($file_name, 'w') or die('Cannot open file: '.$file_name);
// write name to the file
fwrite($myfile, $time);
// close the file
fclose($myfile);
但它不起作用。
有什么解决办法吗?
您想要的似乎是 PHP 用时区变量的结果写入文件,即它是一个包含时区名称的文本文件。
可能您看到的是 PHP 写 JavaScript 行,即 <script>document.writeln(timezone);</script>
对吗?
发生的事情是 PHP 在 JavaScript 为 运行 之前 完全执行 。你的第一个例子是有效的,因为 PHP 执行,包括写一行 JavaScript,然后 JavaScript 执行,包括那一行,你会看到结果。
您在第二个示例中尝试执行的操作是不可能的。 PHP正在执行,包括JavaScript那一行的写入(到文件),然后JavaScript执行,当然不在那个文本文件中。
你的两个选择是找到一种不同的方法来严格在 PHP 中获取时区,或者使用 JavaScript 获取时区然后使用 AJAX 触发 [= PHP 的 31=]later 运行,即 JavaScript 之后有 运行.
编辑
您的 JavaScript 将像以前一样获取时区。然后它会将它发送到一个单独的文件输出它:
var url = '..'; // url of a php file that JUST processes the file write
$.ajax({
type: "POST",
url: url,
data: {
'timezoneToPrint' : timezone
}
});
在您刚刚调用的另一个 PHP 文件中,您现在可以将其打印到文件中
if($_POST['timezoneToPrint']){
// ..write the file here, the timezone is in $_POST['timezoneToPrint']
}
我有这段代码可以很好地获取用户时区并在 php 中回显。之前还有一条提示信息。
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js">
</script> <script> var timezone =
Intl.DateTimeFormat().resolvedOptions().timeZone; alert(timezone);
</script>
<?php
$time= "<script>document.writeln(timezone);</script>";
echo $time;
我想将此回显存储在文件中 time.txt
我试过这个:
$file_name = 'time.txt';
//opens the file.txt file or implicitly creates the file
$myfile = fopen($file_name, 'w') or die('Cannot open file: '.$file_name);
// write name to the file
fwrite($myfile, $time);
// close the file
fclose($myfile);
但它不起作用。
有什么解决办法吗?
您想要的似乎是 PHP 用时区变量的结果写入文件,即它是一个包含时区名称的文本文件。
可能您看到的是 PHP 写 JavaScript 行,即 <script>document.writeln(timezone);</script>
对吗?
发生的事情是 PHP 在 JavaScript 为 运行 之前 完全执行 。你的第一个例子是有效的,因为 PHP 执行,包括写一行 JavaScript,然后 JavaScript 执行,包括那一行,你会看到结果。
您在第二个示例中尝试执行的操作是不可能的。 PHP正在执行,包括JavaScript那一行的写入(到文件),然后JavaScript执行,当然不在那个文本文件中。
你的两个选择是找到一种不同的方法来严格在 PHP 中获取时区,或者使用 JavaScript 获取时区然后使用 AJAX 触发 [= PHP 的 31=]later 运行,即 JavaScript 之后有 运行.
编辑
您的 JavaScript 将像以前一样获取时区。然后它会将它发送到一个单独的文件输出它:
var url = '..'; // url of a php file that JUST processes the file write
$.ajax({
type: "POST",
url: url,
data: {
'timezoneToPrint' : timezone
}
});
在您刚刚调用的另一个 PHP 文件中,您现在可以将其打印到文件中
if($_POST['timezoneToPrint']){
// ..write the file here, the timezone is in $_POST['timezoneToPrint']
}