PHP生成动态的临时JS文件 本帖最后由 changjay 于 2010-07-19 03:16:09 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、传递的js代码量大的话,用<textarea>可能更方便些2、没有很明白你的意思,变量传递不是直接赋值么,$js=$_POST['name'];3、关闭1.php自动擦除,是删除相应的js文件么?,如果这样,我倒建议你不要生成文件,直接在1.php页面输出js代码。如果生成文件,关闭1.php,立刻删除js文件,是比较困难的4、如果一定要不重复文件名,可以有个制造随机字符串函数,判断下具体目录是否存在字符串.js,没有就是不重复了 如果你的js足够动态(随时更改,不需要静态保存),则你完全可以这样使用:<script src=myjs.php?id=123&act=456></script> $js='(function() {... ..."http://localhost/$_POST[\'name\']+comic.php"... ...}';file_put_contents("xxx.js", $js);$_POST['name']输出后还是$_POST['name'],并不是传递过来的变量值……如果我生成的JS就以 $_POST['name'].js 命名,怎样在关闭1.php后自动删除?或者生成的JS直接下载到客户电脑C盘下的临时文件夹里,从临时文件夹里加载……谢谢。 高手陆续起床啦~~我的JS代码很长,大小有30K,所以不想用<script></script>,还是想把它生成到外面再加载进来,要不别人看我的原文件,会不会觉得很BT? <?$js ="<script>alert('".$_POST["name"]."');</script>";file_put_contents($_POST["name"].".js", $js);?>这个方法,这个js是永远存在的。如果你要生成后删除,则访问者会无法正常访问。如果你要访问者访问的时候正确执行,又不想让这个js占用磁盘空间,则直接调用是最好的方案,只不过,不能用POST,而是GET。 传说,GET只能传递100个字节…… get方式提交数据的大小,http协议并没有限制;而是与浏览器及服务器、操作系统有关通常,不要超过2k+35个字节你30多k,get肯定不行。。js如果每一次变化,就是上面说的动态,POST方式传参,直接页面输出是比较好的方案了,省却了写文件,读文件,删文件 呵呵,果然是传说罢了……我想做一个书名查找,然后加一些JS效果。$js='(function() {... ..."http://localhost/$_POST[\'name\']+comic.php"... ...}';file_put_contents("xxx.js", $js);是不是加了function后,$_POST['name']就失效了? 应该不是失效,而是出错。"http://localhost/'.$_POST['name'].'+comic.php" 我试过,比如输入:gone with the wind1.php可以打开,只是缺失特效,并没有报错。我用DW打开生成后的JS文件看过,显示为:"http://localhost/$_POST['name']+comic.php"而不是"http://localhost/gone with the wind+comic.php" <script src=mkjs.php></script>由 mkjs.php 产生的 js 脚本将不被缓存,当然也就看不见了而 <script src="http://localhost/slidetest/xxx.js"></script>虽然 xxx.js 在服务器端被删除了,但在用户的浏览器缓冲区还是可以找到的 试了"http://localhost/\'.$_POST[\'name\'].\'+comic.php"输出结果还是为"http://localhost/'.$_POST['name'].'+comic.php"抓狂ING…… 你的代码漏了很多。'http://localhost/'.$_POST['name'].'+comic.php'; lz基本功不扎实,请把php代码贴出来,肯定是你的引号使用问题 $js='(function() {... ..."http://localhost/\'.$_POST[\'name\'].\'+comic.php"... ...}';file_put_contents("xxx.js", $js);改成:$js=“(function() {... ...'http://localhost/'.$_POST['name'].'+comic.php';... ...}'”;file_put_contents("xxx.js", $js);报错 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in E:\www\gmap\4.php on line 4545行就是 'http://localhost/'.$_POST['name'].'+comic.php'; 的确是引号问题。现在改成$js=“(function() {... ...\"http://localhost/".$_POST["name"]."+comic.php\";... ...}”;file_put_contents("xxx.js", $js);可以显示"http://localhost/gone with the wind+comic.php"但是 其他代码里有一个错误。比如:源代码是有一个"\n" 用\"替代外面的"的话,输出错误,只有""。里面的\n没有了…… 解决了,反义斜杠要画两道杠 \\感谢楼上N位大侠。关于临时建立JS文件,关闭页面后删除的问题,另开主题啦。 生成静态id问题 php中如何用指定的邮箱发送邮件?急急急!!!分不够再加!!!大家来帮帮我啊!!! exit()问题 现要学PHP,有这方面的好书吗 散分 + 推荐一个不错的故事[转载] 我上传的文件怎么看到???求助,谢谢! Parse error: parse error, unexpected $ 是怎么回事? redhatlinux8.0 的apache,怎么加载php? 请问这个错误该怎么解决?谢谢,390分 session有时效性吗?怎么设置? 请问这个变量如何做到防止注入和xss攻击 PHP 截取字符串写入json问题(在线等分就这么多了)
<script src=myjs.php?id=123&act=456></script>
... ...
"http://localhost/$_POST[\'name\']+comic.php"
... ...
}';
file_put_contents("xxx.js", $js);
$_POST['name']输出后还是$_POST['name'],并不是传递过来的变量值……
如果我生成的JS就以 $_POST['name'].js 命名,怎样在关闭1.php后自动删除?
或者生成的JS直接下载到客户电脑C盘下的临时文件夹里,从临时文件夹里加载……
谢谢。
我的JS代码很长,大小有30K,所以不想用<script></script>,还是想把它生成到外面再加载进来,要不别人看我的原文件,会不会觉得很BT?
$js ="<script>alert('".$_POST["name"]."');</script>";
file_put_contents($_POST["name"].".js", $js);
?>这个方法,这个js是永远存在的。如果你要生成后删除,则访问者会无法正常访问。
如果你要访问者访问的时候正确执行,又不想让这个js占用磁盘空间,则直接调用是最好的方案,只不过,不能用POST,而是GET。
js如果每一次变化,就是上面说的动态,POST方式传参,直接页面输出是比较好的方案了,省却了写文件,读文件,删文件
我想做一个书名查找,然后加一些JS效果。$js='(function() {
... ...
"http://localhost/$_POST[\'name\']+comic.php"
... ...
}';
file_put_contents("xxx.js", $js);
是不是加了function后,$_POST['name']就失效了?
"http://localhost/'.$_POST['name'].'+comic.php"
1.php可以打开,只是缺失特效,并没有报错。
我用DW打开生成后的JS文件看过,显示为:
"http://localhost/$_POST['name']+comic.php"
而不是"http://localhost/gone with the wind+comic.php"
由 mkjs.php 产生的 js 脚本将不被缓存,当然也就看不见了而
<script src="http://localhost/slidetest/xxx.js"></script>
虽然 xxx.js 在服务器端被删除了,但在用户的浏览器缓冲区还是可以找到的
输出结果还是为"http://localhost/'.$_POST['name'].'+comic.php"抓狂ING……
... ...
"http://localhost/\'.$_POST[\'name\'].\'+comic.php"
... ...
}';
file_put_contents("xxx.js", $js);改成:$js=“(function() {
... ...
'http://localhost/'.$_POST['name'].'+comic.php';
... ...
}'”;
file_put_contents("xxx.js", $js);报错 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in E:\www\gmap\4.php on line 4545行就是 'http://localhost/'.$_POST['name'].'+comic.php';
... ...
\"http://localhost/".$_POST["name"]."+comic.php\";
... ...
}”;
file_put_contents("xxx.js", $js);可以显示"http://localhost/gone with the wind+comic.php"
但是 其他代码里有一个错误。
比如:源代码是有一个"\n" 用\"替代外面的"的话,输出错误,只有""。里面的\n没有了……
感谢楼上N位大侠。
关于临时建立JS文件,关闭页面后删除的问题,另开主题啦。