PHP动态生成javascript文件的2个例子


Posted in PHP onApril 11, 2014

一、PHP动态生成

第一步:在PHP文件中直接写入JS代码,并在头部声明这是一个JavaScript文件

<?php header('Content-Type: application/x-javascript; charset=UTF-8');?>

第二步:用PHP输出转义JavaScript代码
function jsformat($str)
{
    $str = trim($str);
    $str = str_replace('\\s\\s', '\\s', $str);
    $str = str_replace(chr(10), '', $str);
    $str = str_replace(chr(13), '', $str);
    $str = str_replace('    ', '', $str);
    $str = str_replace('\\', '\\\\', $str);
    $str = str_replace('"', '\\"', $str);
    $str = str_replace('\\\'', '\\\\\'', $str);
    $str = str_replace("'", "\'", $str);
    return $str;
}

直接调用jsformat($str)
最后一步:进行url重写,比如PHP地址为 xxx/123.php 只要重写成 xxx/123.js 至此已经达成目的。

以PHPCMS为例

<?php header('Content-Type: application/x-javascript; charset=UTF-8');?>
{pc:content action="position" posid="1" order="id DESC" num="7" $catid=11}
<?php
function jsformat($str){
    $str = trim($str);
    $str = str_replace('\\s\\s', '\\s', $str);
    $str = str_replace(chr(10), '', $str);
    $str = str_replace(chr(13), '', $str);
    $str = str_replace('    ', '', $str);
    $str = str_replace('\\', '\\\\', $str);
    $str = str_replace('"', '\\"', $str);
    $str = str_replace('\\\'', '\\\\\'', $str);
    $str = str_replace("'", "\'", $str);
    return $str;
}
?>
{loop $data $v}
document.writeln("<?php echo jsformat("<a href=\"$v[url]\"><img src=\"$v[thumb]\"></a>");?>");
{/loop}
{/pc}

每一个循环都用 document.writeln()写出转移后的代码。

二、PHP include JS文件

通过html写javascript引入一个php的链接,该php实际上是生成js的文件:

if (20 == $ad_type_id) { // 对联
 ob_start ();
 include TMPL_PATH . 'Code/duilian.js';
 header("content-type: application/x-javascript");
 $code = ob_get_clean ();
 echo $code;
}

在php里面include js文件,js里面的var swf这样的变量,var swf = ‘‘,这里使用ob缓存,注意加上header(“content-type: application/x-javascript”),让浏览器知道这是个javascript的脚本文件。

页面上这样引用:

<script src="http://tg.1155t.cn/code/53/" language="JavaScript"></script>
PHP 相关文章推荐
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
PHP初学者常见问题集合 修正版(21问答)
Mar 23 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
PHP学习之整理字符串
Apr 17 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
mac下安装nginx和php
Nov 04 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
微信 getAccessToken方法详解及实例
Nov 23 PHP
zend框架实现支持sql server的操作方法
Dec 08 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
Oct 12 PHP
php实现数组筛选奇数和偶数示例
Apr 11 #PHP
php求正负数数组中连续元素最大值示例
Apr 11 #PHP
PHP入门经历和学习过程分享
Apr 11 #PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
Apr 10 #PHP
php中的curl使用入门教程和常见用法实例
Apr 10 #PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 #PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 #PHP
You might like
多重?l件?合查?(一)
2006/10/09 PHP
php+mysql分页代码详解
2008/03/27 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
python发腾讯微博代码分享
2014/01/10 Python
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
bpython 功能强大的Python shell
2016/02/16 Python
Python实现在线音乐播放器
2017/03/03 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
用Python解决x的n次方问题
2019/02/08 Python
python实现AES加密解密
2019/03/28 Python
python pandas生成时间列表
2019/06/29 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
幼儿园教学管理制度
2014/02/04 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
初中语文教学随笔
2015/08/15 职场文书
2019年大学推荐信
2019/06/24 职场文书
Python实现简单得递归下降Parser
2022/05/02 Python