PHP代码中包含8进制和16进制还有字母混合如何转换成ASCII?

原代码:$subPageCss1Str.="当前第".$this->current_page."页/共".$this->pageNums."页";if($this->cu... 原代码:
$subPageCss1Str.="当前第".$this->current_page."页 / 共".$this->pageNums."页 "; if($this->current_page > 1){ $firstPageUrl=$this->subPage_link."1".$this->wjt_htm; $prewPageUrl=$this->subPage_link.($this->current_page-1).$this->wjt_htm;
$subPageCss1Str.="<a href='$prewPageUrl' \143\x6cass='p\x72\145v\x69\157\x75\163-page'>上一页</a> "; }else {
$subPageCss1Str.="<a \143\x6ca\163\163='\x6e\157-\x70re\166io\165s'>上一页</a> "; } if($this->current_page < $this->pageNums){ $lastPageUrl=$this->subPage_link.$this->pageNums.$this->wjt_htm; $nextPageUrl=$this->subPage_link.($this->current_page+1).$this->wjt_htm; $subPageCss1Str.=" <a href='$nextPageUrl' c\x6c\141\163\x73='\x6e\145\170t-page'>下一页</a> ";
}else { $subPageCss1Str.="<a cla\x73s='\x6e\157-\x6e\x65\x78\x74'>下一页</a> ";
} echo $subPageCss1Str; } function subPageCss2(){ $subPageCss2Str="";
if($this->current_page > 1){ $firstPageUrl=$this->subPage_link."1".$this->wjt_htm; $prewPageUrl=$this->subPage_link.($this->current_page-1).$this->wjt_htm; $subPageCss2Str.="<a href='$firstPageUrl'>首页</a>"; $subPageCss2Str.="<a href='$prewPageUrl' title='转到上一页'>上一页</a>"; }else { $subPageCss2Str.=""; $subPageCss2Str.=""; } $a=$this->construct_num_Page(); for($i=0;$i<count($a);$i++){ $s=$a[$i]; if($s == $this->current_page ){ $subPageCss2Str.="<span>".$s."</span>"; }else{ $url=$this->subPage_link.$s.$this->wjt_htm; $subPageCss2Str.="<a href='$url'>".$s."</a>"; } } if($this->current_page < $this->pageNums){ $lastPageUrl=$this->subPage_link.$this->pageNums.$this->wjt_htm; $nextPageUrl=$this->subPage_link.($this->current_page+1).$this->wjt_htm; $subPageCss2Str.="<a href='$nextPageUrl' title='转到下一页'>下一页</a>"; $subPageCss2Str.="<a href='$lastPageUrl'>尾页</a> "; }else { $subPageCss2Str.=""; $subPageCss2Str.=""; } echo $subPageCss2Str; } } ;

上面的一段中,包含两种8和16,能不能一次性将他们区分开始转换成原代码再组合?
哪位可以帮我写一个函数可以直接转换的,自已调试了半天都没弄出来。只能弄出来单个的。
$data.=chr(hexdec($str));
$data.=chr(octdec($str));
展开
 我来答
xylanh
2011-04-16 · TA获得超过270个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:219万
展开全部
<?php
function hex_replace($str){//转换成ASCII
$tmp = substr($str, 0, 1);
if($tmp == 'x' || $tmp == 'X'){ //判断是否是 16 进制, 否则当 8 进制处理
return chr(hexdec($str));
} else {
return chr(octdec($str));
}
}
$str = file_get_contents("cc.txt");
$str = preg_replace('/\\\\([xX][\\dA-Fa-f]{1,2})|\\\\([\\d]{1,3})/e', 'hex_replace(\'$1$2\')', $str);//替换
echo $str;
?>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式