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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
PHP中SESSION使用中的一点经验总结
Mar 30 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
php结合curl实现多线程抓取
Jul 09 PHP
codeigniter实现get分页的方法
Jul 10 PHP
PHP命名空间namespace用法实例分析
Sep 27 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
apache集成php7.3.5的详细步骤
Jun 20 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将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
基于Require.js使用方法(总结)
2017/10/26 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python设置检查点简单实现代码
2014/07/01 Python
Python Socket编程入门教程
2014/07/11 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python简单实例训练(21~30)
2017/11/15 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
python ftplib模块使用代码实例
2019/12/31 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
导致python中import错误的原因是什么
2020/07/01 Python
浅谈python 类方法/静态方法
2020/09/18 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
C/C++程序员常见面试题一
2012/12/08 面试题
企业申诉管理制度
2014/01/30 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
写给父母的感谢信
2015/01/22 职场文书
考勤制度通知
2015/04/25 职场文书
服务行业标语口号
2015/12/26 职场文书
Nginx源码编译安装过程记录
2021/11/17 Servers