我有一个页面(父级)通过弹出窗口(子级)打开第二个页面
在第二页上,我有以下 PHP 代码,它从父页面获取 HTML 元素的值:
$var=print_r("<script type='text/javascript'>var x=window.opener.document.getElementsByName('name1');document.write(x[0].value)</script>",true);
当我回显变量 $var
时,我得到的正是我所期望的。因此:
echo "test=" . $test;
... 在页面上打印例如“费用”。
到目前为止一切顺利。
问题是当我尝试将此变量写入如下文件时:
$f=fopen("/mylog.txt","w+");
fwrite($f, $test);
fclose($f);
... 然后,而不是 $test
的实际值(例如费用),
我在我的日志文件中得到了整个脚本标签,因此:
<script type='text/javascript'>var x=window.opener.document.getElementsByName('name1');document.write(x[0].value)</script>
假设带有“true”参数的 print_r
将值返回到我的 $test
变量,为什么它要将确切的脚本标记写入日志文件?
我怎样才能克服这个问题?
最佳答案
当您向浏览器回显
该值时,它将运行 JavaScript 并显示结果。
将其保存到文件时,不会执行 JavaScript。
在这两种情况下,都会输出完整的脚本,但浏览器实际上正在运行脚本,而您的文本编辑器不会。
关于php - PHP 代码中的 JavaScript 脚本标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15928892/