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 相关文章推荐
用php实现像JSP,ASP里Application那样的全局变量
Jan 12 PHP
php字符串截取中文截取2,单字节截取模式
Dec 10 PHP
关于php循环跳出的问题
Jul 01 PHP
一组PHP加密解密函数分享
Jun 05 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
php的4种常见运行方式
Mar 20 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
PHP中Restful api 错误提示返回值实现思路
Apr 12 PHP
PHP二维数组去重实例分析
Nov 18 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
PHP实现带进度条的Ajax文件上传功能示例
Jul 02 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 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
PHP二维数组排序简单实现方法
2016/02/14 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
Python进行数据科学工作的简单入门教程
2015/04/01 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
set在python里的含义和用法
2019/06/24 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Python基于locals返回作用域字典
2020/10/17 Python
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
管理学专业个人求职信范文
2013/12/13 职场文书
公司道歉信范文
2014/01/09 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
活动总结范文
2014/08/30 职场文书
公司离职证明范本
2014/10/17 职场文书
廉政承诺书
2015/01/19 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
Java 数据结构七大排序使用分析
2022/04/02 Java/Android