<?php /** * @author qqzer.com * @copyright 2010 */ function baidu_decode($url,$sertim='',$k=array()) { $E=strlen($url); $C=""; $I=array(); $F=array(); $J=$sertim % 26; $J=$J?$J:1; foreach((array)$k as $str){ list($O,$L,$M) = explode(',',$str); for($N=$O;$N<=$L;$N++){ $I[$N]=$N+$M; $F[$N+$M]=$N; } } for($D=0;$D<$E;$D++){ $A=$url{$D}; if(preg_match('/[A-Za-z0-9]/',$A)){ $H=$F[ord(substr($url,$D))]-$J; if($H<0){ $H+=62; } $A = fromCharCode($I[$H]); } $C .=$A; } return $C; } function fromCharCode($codes) { if (is_scalar($codes)) $codes= func_get_args(); $str= ''; foreach ($codes as $code) $str.= chr($code); return $str; } echo baidu_decode('w884://2tB7.wp2vEw39.r31.r2/7x8tH/HFFOFNHN/FFGtrOJtKGKuFrFGLKNHFI.14I',1268169359,array('0,9,48','10,35,55','36,61,61')); ?>