- 浏览: 222708 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
cuit_miaolin:
[b][flash=200,200][url][img][li ...
select、input-checkbox标签的多值处理 -
FZtree:
写controller 在action里面 @你要传递的变量
在rails中执行sql语句 -
mhzyb:
长见识了!
理解prototype.js的bind函数 -
ggjjl1:
mark
windows下PHP安装imagick扩展 -
lihaoyxj:
你好,请问如何在rails中执行SQL语句的select的返回 ...
在rails中执行sql语句
吴浩介绍我看看《nodejs》,在我的VPS上配好后,发现它解决了一个问题:如何在PHP里模拟调用javascript环境。《NodeJS探索》写的幽默风趣,较为经典的话莫过于“这对于JS程序员来说,真是一个莫大的福音,因为你们再也不用看着那帮做后台的孙子的脸色干活了,可以翻身做后端了”。
拿采集爱漫画的程序举例子,http://imanhua.com/comic/120/list_50567.html?p=3,打开源代码,找到如下代码:
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('5 d=c;5 e=["/3/2/1/0/g.f","/3/2/1/0/b.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/9.4","/3/2/1/0/a.4","/3/2/1/0/h.4","/3/2/1/0/p.4","/3/2/1/0/o.4","/3/2/1/0/q.4","/3/2/1/0/s.4","/3/2/1/0/r.4","/3/2/1/0/n.4","/3/2/1/0/j.4","/3/2/1/0/i.4","/3/2/1/0/k.4","/3/2/1/0/m.4"];5 l=0;',29,29,'50567|120|Images|Files|png|var|imanhua_004_095646468|imanhua_003_095646453|imanhua_005_095646468|imanhua_006_095646484|imanhua_007_095646484|imanhua_002_095646453|18|len|pic|jpg|imanhua_001_095646437|imanhua_008_095646500|imanhua_016_095646531|imanhua_015_095646531|imanhua_017_095646531|sid|imanhua_018_095646546|imanhua_014_095646515|imanhua_010_095646500|imanhua_009_095646500|imanhua_011_095646500|imanhua_013_095646515|imanhua_012_095646515'.split('|'),0,{}))
在netbeans里,换行、缩进之后,变成:
eval(function(p,a,c,k,e,d){ e=function(c){ return(c<a?"":e(parseInt(c/a))) + ((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)) }; if(!''.replace(/^/,String)){ while(c--)d[e(c)]=k[c]||e(c); k=[function(e){return d[e]}]; e=function(){return'\\w+'};c=1; }; while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]); return p; }('5 d=c;5 e=["/3/2/1/0/g.f","/3/2/1/0/b.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/9.4","/3/2/1/0/a.4","/3/2/1/0/h.4","/3/2/1/0/p.4","/3/2/1/0/o.4","/3/2/1/0/q.4","/3/2/1/0/s.4","/3/2/1/0/r.4","/3/2/1/0/n.4","/3/2/1/0/j.4","/3/2/1/0/i.4","/3/2/1/0/k.4","/3/2/1/0/m.4"];5 l=0;', 29, 29, '50567|120|Images|Files|png|var|imanhua_004_095646468|imanhua_003_095646453|imanhua_005_095646468|imanhua_006_095646484|imanhua_007_095646484|imanhua_002_095646453|18|len|pic|jpg|imanhua_001_095646437|imanhua_008_095646500|imanhua_016_095646531|imanhua_015_095646531|imanhua_017_095646531|sid|imanhua_018_095646546|imanhua_014_095646515|imanhua_010_095646500|imanhua_009_095646500|imanhua_011_095646500|imanhua_013_095646515|imanhua_012_095646515'.split('|'), 0,{ }) );
定义一个匿名函数,同时传入参数,运行返回一个值。紧接着,返回值被eval函数接收,并运行。把上述代码抠出来,放到firefox的firebug控制台运行:
var s = function(p,a,c,k,e,d){ e=function(c){ return(c<a?"":e(parseInt(c/a))) + ((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)) }; if(!''.replace(/^/,String)){ while(c--)d[e(c)]=k[c]||e(c); k=[function(e){return d[e]}]; e=function(){return'\\w+'};c=1;}; while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]); return p; } ( '5 d=c;5 e=["/3/2/1/0/g.f","/3/2/1/0/b.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/9.4","/3/2/1/0/a.4","/3/2/1/0/h.4","/3/2/1/0/p.4","/3/2/1/0/o.4","/3/2/1/0/q.4","/3/2/1/0/s.4","/3/2/1/0/r.4","/3/2/1/0/n.4","/3/2/1/0/j.4","/3/2/1/0/i.4","/3/2/1/0/k.4","/3/2/1/0/m.4"];5 l=0;',29,29,'50567|120|Images|Files|png|var|imanhua_004_095646468|imanhua_003_095646453|imanhua_005_095646468|imanhua_006_095646484|imanhua_007_095646484|imanhua_002_095646453|18|len|pic|jpg|imanhua_001_095646437|imanhua_008_095646500|imanhua_016_095646531|imanhua_015_095646531|imanhua_017_095646531|sid|imanhua_018_095646546|imanhua_014_095646515|imanhua_010_095646500|imanhua_009_095646500|imanhua_011_095646500|imanhua_013_095646515|imanhua_012_095646515'.split('|'),0,{} ); alert(s);
可以看到,匿名函数返回值为:
var len=18;var pic=["/Files/Images/120/50567/imanhua_001_095646437.jpg","/Files/Images/120/50567/imanhua_002_095646453.png","/Files/Images/120/50567/imanhua_003_095646453.png","/Files/Images/120/50567/imanhua_004_095646468.png","/Files/Images/120/50567/imanhua_005_095646468.png","/Files/Images/120/50567/imanhua_006_095646484.png","/Files/Images/120/50567/imanhua_007_095646484.png","/Files/Images/120/50567/imanhua_008_095646500.png","/Files/Images/120/50567/imanhua_009_095646500.png","/Files/Images/120/50567/imanhua_010_095646500.png","/Files/Images/120/50567/imanhua_011_095646500.png","/Files/Images/120/50567/imanhua_012_095646515.png","/Files/Images/120/50567/imanhua_013_095646515.png","/Files/Images/120/50567/imanhua_014_095646515.png","/Files/Images/120/50567/imanhua_015_095646531.png","/Files/Images/120/50567/imanhua_016_095646531.png","/Files/Images/120/50567/imanhua_017_095646531.png","/Files/Images/120/50567/imanhua_018_095646546.png"];var sid=50567;
三条js语句!
nodejs
------------
安装nodejs成功后,编辑test.js,写入如下代码:
var s = function(p,a,c,k,e,d){ e=function(c){ return(c<a?"":e(parseInt(c/a))) + ((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)) }; if(!''.replace(/^/,String)){ while(c--)d[e(c)]=k[c]||e(c); k=[function(e){return d[e]}]; e=function(){return'\\w+'};c=1;}; while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]); return p; } ( '5 d=c;5 e=["/3/2/1/0/g.f","/3/2/1/0/b.4","/3/2/1/0/7.4","/3/2/1/0/6.4","/3/2/1/0/8.4","/3/2/1/0/9.4","/3/2 /1/0/a.4","/3/2/1/0/h.4","/3/2/1/0/p.4","/3/2/1/0/o.4","/3/2/1/0/q.4","/3/2/1/0/s.4","/3/2/1/0/r.4","/3/2/1/0/n.4","/3/2/1/0/j.4"," /3/2/1/0/i.4","/3/2/1/0/k.4","/3/2/1/0/m.4"];5 l=0;',29,29,'50567|120|Images|Files|png|var|imanhua_004_095646468|imanhua_003_095646 453|imanhua_005_095646468|imanhua_006_095646484|imanhua_007_095646484|imanhua_002_095646453|18|len|pic|jpg|imanhua_001_095646437|im anhua_008_095646500|imanhua_016_095646531|imanhua_015_095646531|imanhua_017_095646531|sid|imanhua_018_095646546|imanhua_014_0956465 15|imanhua_010_095646500|imanhua_009_095646500|imanhua_011_095646500|imanhua_013_095646515|imanhua_012_095646515'.split('|'),0,{} ); console.log(s);
在shell里,输入:
node test.js
输出上述值。
畅想
------
php正则获取上述代码,在服务器端生成test.js,那么,用PHP提供的函数exec获取路径地址,借助json_decode函数,就可以搞定了。
《学习服务器端的JavaScript_Node.js》忠实地记录了如何写一个twitter客户端程序,是非常好的howto~
发表评论
-
取消 Google 搜索结果链接重定向,外加新页面打开
2012-11-30 10:38 1759chinaz有篇文章《取消 Google 搜索结果链接重定向》 ... -
启用右键功能的chrome插件
2011-08-14 08:26 2408经常碰到一些屏蔽右键功能的网页,无法查看网页源代码、点出右键菜 ... -
javascript优秀博客
2011-01-18 08:55 1246《使用面向对象的技术创建高级 Web 应用程序》 《理解Ja ... -
CALLBACK 与 FUNCTIONS
2010-06-30 11:24 1390CALLBACK AND FUNCTIONS ------- ... -
简单的事件处理代码 from g.cn
2010-06-29 19:49 1051g.cn首页不再跳转了,放了一张图片,鼠标点击客户区,页面 ... -
Firefox扩展--PageShare
2009-12-26 11:34 1038平时浏览网页,碰到比较好的文章,就想分享给朋友。 有的 ... -
ECMAScript 5正式发布
2009-12-15 08:58 1245这周ECMAScript 5也即众所周知的JavaScri ... -
刷UCHome的火狐扩展--Homezilla
2009-12-11 15:50 1131用uchome做的sns社区,用户每天可以获取一些积分,比如登 ... -
eval会把参数中的大括号视作复合语句的标识
2009-11-17 23:08 1835var jsonStr = $('#jsonData').va ... -
用js模拟PHP的print_r功能
2009-11-10 11:51 3913最近参与一个PHP与flash交互的项目,数据格式采用json ... -
《JavaScript语言精粹》拾零
2009-10-01 08:03 1029我在看《JavaScript语言精粹》的时候,有些零碎的知识点 ... -
俄罗斯方块游戏
2009-07-27 13:55 1083受吴浩 提醒,我写了个俄罗斯方块的小游戏。之前,我的思路有问 ... -
JavaScript closures 闭包概要
2009-07-14 21:11 1720原文地址:http://www.javascriptkit.c ... -
提高JavaScript性能的三个小知识
2009-07-13 08:19 996--------------- 木鱼说 --------- ... -
js的作用域
2009-07-12 18:03 1196PHP的函数里,不能直接访问函数外面的变量,除非显式地声明该变 ... -
js函数的几种写法
2009-07-12 16:34 2121最常见的: function foo() { alert ... -
理解prototype.js的bind函数
2009-07-11 17:34 7599先看call(或apply)的用处: var first_o ... -
edwards推荐的十大js资料站
2009-07-11 14:28 959edwards的about栏目回答了很多网友的提问。有人问: ... -
关于object.extend在prototype和google doctype里的对比
2009-07-09 11:28 1477prototype.js里的代码: Object.exten ... -
nodeType的定义
2009-06-27 14:53 1074在《网页制作完全手册》里,nodeType的值只提到了两个, ...
相关推荐
其次,它使得 JavaScript 语言可以在服务器端运行,提供了一个新的选择项给开发者;最后,它的出现也带来了很多的可能性,如使用 NodeJS 构建实时的 Web 应用程序、游戏服务器、聊天服务器等。 NodeJS 的优点很多...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。在电商领域,Node.js由于其高效的异步非阻塞I/O模型,以及丰富的开源库,常被用来构建高性能的API服务器。在...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript编写代码,从而打破了JavaScript只能在浏览器中执行的传统。标题提到“通过Node.js运行服务器端JavaScript文件像通过...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让JavaScript能够在服务器端执行,打破了JavaScript长期以来只能在浏览器中运行的限制。Node.js使用了一个事件驱动、非阻塞I/O模型,使其轻量又高效,非常...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript进行编程,实现了全栈开发的可能性。 描述中提到,这是一个仅供个人方便下载的资源,其内容包括了两个文件,一个名为...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者可以使用JavaScript编写服务器端代码。Node.js提供了http模块,我们可以利用这个模块来创建一个简单的Web服务器。 **创建Node.js Web服务器** 1. ...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"nodejs 服务器端的JavaScript脚本(node.js)"压缩包可能包含了一系列的示例代码、教程或者项目,旨在帮助...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者可以用 JavaScript 语言编写服务器端程序。由于其轻量级、高效的特点,Node.js 成为了搭建本地 Web 服务器的首选工具之一。在本文中,我们将...
NodeJS是 JavaScript 运行时环境,可以让 JavaScript 代码在服务器端执行。NodeJS 实际上是对 ES 标准的一个实现,同时 Node 也是一个 JS 引擎。 Node 只对 ES 标准进行了实现,所以在 NodeJS 中不包含 DOM 和 BOM...
《 Elf:一个趣味性的NodeJS服务器端模板引擎实践》 在IT行业中,Node.js作为一款强大的JavaScript运行环境,因其异步非阻塞I/O模型和高效的性能,深受开发者喜爱,尤其在构建服务器端应用时。而模板引擎是前端与...
在服务器端,reagent-nodejs 使用 node 和 express 到服务器内容。 需要几个垫片才能使其工作: 闭包需要从闭包库下载 nodejs.js 引导代码 react.js 的副本需要存在于服务器的根目录中 javascript 存根 - window.
在深入探讨《基于NodeJS的智能家居语音控制系统服务器端设计与实现》这一课题之前,我们需要理解当前智能家居技术的发展趋势,以及语音控制如何为智能家居带来便捷。在此基础上,我们将具体探讨NodeJS的特性,以及...
通过Express或Koa等web框架,开发者可以快速搭建稳定高效的服务器端架构。 3. node.js的优势:node.js的单线程模型和V8引擎使其具备高性能和轻量级的特性,能有效应对高并发场景。同时,JavaScript语言的使用使得...
《NodeJS - 在服务器端利用 JavaScript 的力量》是一本深入探讨Node.js技术的书籍,它旨在帮助开发者充分利用JavaScript在服务器端的强大能力。本书通过一系列示例代码,详细讲解了Node.js的核心概念、特性以及实际...
在本项目中,“Web Crawler_Spider用于NodeJS +服务器端jQuery”结合了Node.js的高效性和jQuery的强大DOM处理能力,构建了一个在服务器端运行的爬虫。以下是对这个项目的详细说明: **Node.js**: Node.js是一个...
它允许开发者使用 JavaScript 进行服务器端编程,打破了JavaScript仅能在浏览器端运行的传统。以下是对Node.js环境及其相关知识的详细阐述: 一、Node.js的基本概念 1. JavaScript 运行时:Node.js 提供了一个让 ...
NodeJS 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地推动了全栈开发的流行。NodeJS 的设计思想是事件驱动、非阻塞 I/O 模型,这使得它在处理高并发...
Node.js 是一个开源的、跨平台的JavaScript运行环境,它允许开发者在服务器端运行JavaScript代码。这个"nodejs-10.12.0版本下载"的标题表明我们要讨论的是Node.js的一个特定版本,即v10.12.0。这个版本在Node.js的...
在IT行业中,Node.js是一个非常流行的JavaScript运行环境,它允许开发者使用JavaScript进行后端开发。本文将深入探讨如何使用Node.js结合Socket.IO搭建一个实时通信的聊天服务器。 首先,我们需要理解Node.js的基本...
通过运行服务器端 javascript 来显示新闻源内容的网页 项目简介 创建具有以下要求的新闻网站: 在网页上显示 BBC 和 SKY 的 10 大头条新闻 使用 node.js 服务器 所有数据都要经过nodejs服务器 源头控制 用于测试的...