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 相关文章推荐
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
php获取字段名示例分享
Mar 03 PHP
php判断电脑访问、手机访问的例子
May 10 PHP
php写的AES加密解密类分享
Jun 20 PHP
php查询操作实现投票功能
May 09 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 PHP
php微信公众号开发之图片回复
Oct 20 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 PHP
解决laravel中日志权限莫名变成了root的问题
Oct 17 PHP
laravel 出现command not found问题的解决方案
Oct 23 PHP
PHP cookie与session会话基本用法实例分析
Nov 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
星际争霸任务指南——虫族
2020/03/04 星际争霸
DOM基础教程之使用DOM
2015/01/19 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
python使用mailbox打印电子邮件的方法
2015/04/30 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
python中解析json格式文件的方法示例
2017/05/03 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
Python微信操控itchat的方法
2019/05/31 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
python3跳出一个循环的实例操作
2020/08/18 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
中秋手机店促销方案
2014/06/16 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
消防安全月活动总结
2015/05/08 职场文书
python用字节处理文件实例讲解
2021/04/13 Python
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python
解决 redis 无法远程连接
2022/05/15 Redis