0

请帮我解决一下这个。我有以下代码,我可以从外部 js 文件中检索值

$phpBsetB= "<script>document.write(BsetB)</script>";
echo $phpBsetB;

让我们假设 BsetB 存储一个字符串“abcde”。上面的代码将简单地打印出任何变量 BsetB 是 abcde。我的问题是,如果我添加以下代码

$handle = fopen("test.js", "w");
fwrite($handle, $phpBsetB);
fclose($handle);

test.js 中保存的不是 abcde,而是保存的

<script>document.write(BsetB)</script>

有什么办法可以让它保存 abcde 吗?非常感谢您的帮助!

谢谢你们的快速帮助!我想我需要解释更多我想要做什么。也许你们可以找到更好的方法来解决这个问题。我有一个网页,它加载一个名为 test.js 的外部平面文件。在 test.js 中,我在那里声明了一些变量。我想要做的是,这个网页当前正确读取了 test.js 中的所有变量,但它不会写入/更新 test.js 文件。我希望网页能够编写/更新这个 test.js。由于 javascript 无法在服务器端编写,我尝试使用 php 编写。关键是...我需要加载 test.js 文件,所以我可以编写/更新它。我的网页目前使用 js 读取,所以这就是为什么我的代码现在如此混乱......我只知道如何使用 javascript 读取 js 文件。检索值后,我需要将此 js 变量传递给 php。或者我应该创建 php 平面文件而不是 js?非常感谢您的帮助!!!

4

3 回答 3

2

下面的行被解释为一个字符串。

$phpBsetB= "<script>document.write(BsetB)</script>";

您必须创建一个请求以将值从客户端(javascript)发送到服务器端(php)。

于 2012-12-01T03:40:07.570 回答
0

您混淆了 php 和 javascript,它们不会在趋势中运行。

你的结果将永远是<script>document.write(BsetB)</script>因为BsetB它不是一个变量,它根本没有任何价值。

如果您从某个地方接收此值,那么它应该看起来像这样

$BestB = "abcde";
$phpBsetB= "<script>document.write($BsetB)</script>";
echo $phpBsetB;

$handle = fopen("test.js", "w");
fwrite($handle, $phpBsetB);
fclose($handle);
于 2012-12-01T03:42:14.607 回答
0

PHP 不能执行 JavaScript 函数,也不能处理标签——这就是浏览器的工作。PHP 将简单地输出您告诉它输出的内容,即:<script>document.write(BsetB)</script>

如果您想在浏览器中执行该功能,则在输出中回显它或通过脚本标签包含一个 test.js 文件。

话虽如此,它会产生一个 JavaScript 错误,因为BsetB未定义 Javascript 变量

它应该是

$BsetB= "<script>document.write('abcds')</script>";
echo  $BsetB;

浏览器输出 abcds

或者

$my_output = "abc";
$BsetB= "<script>document.write('".$my_output."')</script>";

echo $BsetB;
于 2012-12-01T03:44:56.473 回答