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写的采集程序
Mar 16 PHP
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
PHP中常用数组处理方法实例分析
Aug 30 PHP
php中用foreach来操作数组的代码
Jul 17 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
Aug 01 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
Apr 09 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
paypal即时到账php实现代码
2010/11/28 PHP
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
jQuery实现计算器功能
2020/10/19 jQuery
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
Python中的文件和目录操作实现代码
2011/03/13 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
Python判断有效的数独算法示例
2019/02/23 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
新郎新娘婚礼答谢词
2014/01/11 职场文书
鸦片战争观后感
2015/06/09 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
如何使用pdb进行Python调试
2021/06/30 Python