PHP对escape的字符串进行解密

作者:小文 发布于:2010-8-28 12:53 Saturday 分类:其它资源

Escape是js 脚本的一种加密字符串的方式.具体详情可以参见http://www.w3school.com.cn/js/jsref_unescape.asp

有的网站会将中文字进行Escape编码,然后在显示时用unescape再进行转换.比如有这么一段代码

<title>广州公交查询-由%u91D1%u6CFD%u5927%u53A6到%u767E%u5F81%u79D1%u6280%u5927%u53A6的乘车路线</title>

这个是经过Escape编码的.我们需要在PHP中将其解密.在网上搜索后,得到加密和解密代码.

<?php

function unescape($str) { //这个是解密用的
         $str = rawurldecode($str);
         preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U",$str,$r);
         $ar = $r[0];
         foreach($ar as $k=>$v) {
                  if(substr($v,0,2) == "%u")
                           $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4)));
                  elseif(substr($v,0,3) == "&#x")
                           $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1)));
                  elseif(substr($v,0,2) == "&#") {
                           $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1)));
                  }
         }
         return join("",$ar);
}

function phpescape($str){//这个是加密用的
    preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$newstr);
    $ar = $newstr[0];
    foreach($ar as $k=>$v){
        if(ord($ar[$k])>=127){
            $tmpString=bin2hex(iconv("GBK","ucs-2",$v));
            if (!eregi("WIN",PHP_OS)){
                $tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
            }
            $reString.="%u".$tmpString;
        } else {
            $reString.= rawurlencode($v);
        }
    }
    return $reString;
}

?>

我们测试一下

echo unescape("由%u91D1%u6CFD%u5927%u53A6到%u767E%u5F81%u79D1%u6280%u5927%u53A6的乘车路线");

可以得到  由金泽大厦到百征科技大厦的乘车路线

标签: escape unescape php

评论(4) 引用(0) 浏览(8086)

火车采集器2010版PHP插件增加扩展的方法

作者:小文 发布于:2010-8-28 12:19 Saturday 分类:常见问题

火车采集器的PHP插件的实现原理是使用php命令行模式,向php的cli文件发送命令,然后PHP处理php文件,采集器获取返回的数据.从理论上说,PHP插件可以实现几乎所有的PHP功能.关于PHP命令行,大家可以参考官方的权威说明  http://docs.php.net/manual/zh/features.commandline.php

火车采集器中PHP执行程序为Site.exe,对应的php.ini为Site.ini.所有的PHP文件都放在System目录下.PHP命令行程序执行时的工作目录为火车采集器主程序所在目录.如果您需要修改PHP里的一些参数,可以通过修改Site.ini来实现.默认的Site.ini只有PHP的一些常用功能,很多扩展没有加载.您可以按自己的需求,增加或是去除扩展.

如果您是非PHP专业人员,只是使用现成的插件,当提示您没有找到某个扩展或是方法时,您可以直接下载该压缩包并直接解压覆盖到火车采集器System目录下去.该压缩包包含了PHP常见的所有扩展.

标签: php插件

评论(0) 引用(0) 浏览(9151)

PHPCMS 2007SP6 免登陆文章发布接口

作者:小文 发布于:2010-8-23 23:14 Monday 分类:免费接口

PHPCMS 2007SP6 免登陆文章发布接口使用说明

一、功能特性
1、免登陆,用户可以设置验证密码来防止未授权的访问.
2、多用户随机发布文章.
3、可以达到和手工发布文章完全一样的效果,包括是否生成静态,去掉外链,下载远程图片等功能.


二、使用教程
1、文字教程
 1.1、选择您网站对应的接口文件.如您网站是gbk编码,请选择 jiekou_gbk.php,如果是utf-8编码,请选择jiekou_utf8.php.
 1.2、打开接口文件,修改验证密码,然后保存.
 1.3、修改接口文件名并上传至网站的根目录.
 1.4、修改发布模块 PHPCMS 2007SP6 文章免登陆接口发布模块.cwr ,将发布模块里的发布文件地址后缀及刷新列表文件地址后缀中的文件名修改为您刚才修改的接口文件名.
 1.5、添加随机用户名.
 1.6、设置发布配置,采集并开始发布.
2、视频教程请参考:
 DedeCMS: http://video.locoy.com/jiekou/dede/dede56_article.7z
 帝国CMS: http://video.locoy.com/jiekou/ecms/ecms65_article.7z


三、注意事项
1、该接口仅适用于发布文章到PHPCMS 2007SP6频道内容模型为普通文章的栏目,即PHPCMS系统里默认channelid为1的频道;
2、该接口基于PHPCMS 2007SP6 GBK版制作,适用PHPCMS 2007SP6 GBK/utf-8等版本,请在使用时接口选择对应的版本.


四.参数说明
1、必选参数
 article[title]       标题
 article[content]   内容(phpcms2008分页标记'[page]')
 catid            分类ID
 username              用户名,必须使用网站上已存在的用户名,默认是随机用户名,用户需要在模块中设置
 pw                    验证密码.在刷新列表和post发布时使用,需要模块和接口中的验证密码一致.

2、可选参数 
 channelid=1        频道ID
 article[typeid]=0   分类ID,无则填0
 article[paginationtype]=0  分页方式,0不分页,1自动分页,2手动分页
 article[maxcharperpage]=10000 自动分页时的每页大约字符数,默认10000
 freelink=0     添加到自由调用,无则填0,有则填名称,如“freelink=首页幻灯片”“freelink=首页推荐信息”
 article[status]=3   文章状态,3已通过,1待审核,0草稿
 article[ishtml]=1   是否生成,1是,0否
 article[htmldir]=html  html文件生成目录
 article[prefix]=article_  文件名前缀
 html_urlrule=0    url规则编号(生成html)
 php_urlrule=0    url规则编号(不生成html)
 article[templateid]=0  模板类型名称,如文章页“content”,填0为默认
 article[skinid]=0   风格类型名称,如默认风格“default”,填0为默认
 article[readpoint]=0  阅读所需点数
 article[style]=          标题格式:颜色“color:#000080”,加粗“font-weight:bold”,示例:“color:#000080;font-weight:bold;”
 article[keywords]=          关键字,半角逗号或空格分开(本项建议在采集配置-自定项中设置)
 addkeywords=1          是否添加到关键字列表,1为是
 article[author]=           作者
 addauthor=1           是否添加到作者列表,1为是
 article[copyfrom]         来源
 addcopyfrom=1          是否添加到来源列表,1为是
 save_remotepic=          是否自动下载内容中远程图片,1为是
 auto_thumb=           是否获取内容图片作为标题图片,1为是
 auto_thumb_no=1          获取内容第几张图片作为标题图片,默认1
 article[arrposid][]=     推荐位置,1网站首页推荐,2频道首页焦点,3频道首页推荐
 article[subheading]=     副标题
 add_introduce=1       是否截取内容至内容摘要,1为是
 introcude_length=200     截取内容摘要字数
 article[introduce]=      内容摘要,在不使用add_introduce时使用
 article[addtime]=      添加日期,格式“2007-09-13”
 article[arrgroupidview][]= 允许查看的会员组编号,1管理员,2禁止访问,3游客,4待验证会员,5待审批会员,6注册会员,7收费会员,8VIP会员,9特约记者

标签: phpcms

评论(1) 引用(0) 浏览(11278)

PHPWind,Discuz论坛附件采集教程(有声版)

作者:小文 发布于:2010-8-10 17:41 Tuesday 分类:其它资源

该教程演示了如何下载PHPWind,Discuz论坛的附件.建议用户使用flash播放器按100%播放.

下载地址:http://video.locoy.com/fujian/pwanddz.7z

标签: 论坛 附件 下载

评论(0) 引用(0) 浏览(10572)

PHP168文章免登陆接口

作者:小文 发布于:2010-8-10 17:22 Tuesday 分类:免费接口

本接口实现了多用户,免登陆的发布效果,

阅读全文>>

标签: php168

评论(0) 引用(0) 浏览(20843)

Powered by emlog