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 相关文章推荐
Windows下PHP5和Apache的安装与配置
Sep 05 PHP
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
php安全配置 如何配置使其更安全
Dec 16 PHP
深入PHP变量存储的详解
Jun 13 PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
php使用数组填充下拉列表框的方法
Mar 31 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
PHP操作XML中XPath的应用示例
Jul 04 PHP
PHP接口类(interface)的定义、特点和应用示例
May 18 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
?生?D片??C字串
2006/12/06 PHP
php中处理模拟rewrite 效果
2006/12/09 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
Django中使用group_by的方法
2015/05/26 Python
Python的迭代器和生成器
2015/07/29 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python如何为创建大量实例节省内存
2018/03/20 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
Unix如何在一行中运行多个命令
2015/05/29 面试题
档案管理员岗位职责
2013/12/01 职场文书
销售主管的自我评价分享
2014/01/03 职场文书
新学期决心书
2014/03/11 职场文书
党风廉政承诺书
2014/03/27 职场文书
食品安全责任书
2014/04/15 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js