css页面字体替换源代码和页面显示不一样问题解决

2018年8月27日19:58:12

css指定字体的时候,可以自制的字体,比如字符替换,比如

 

0没有被替换,其他在源代码被替换对应的字母,但是现实的时候在替换成正确的数字

很简单,防爬虫,但是....呵呵

解决办法就是把爬回来的数据,自己根据规则替换回来

吧网页里 .ttf的文件找出来,使用 FontCreatorPortable打开,就可以看见规则了,足以ttl文件和eot文件的关系,一般只需要的ttf文件即可

写方法的时候发现了,一个bug,本人的php现在是7.2 

 function css_replace_decrypt($str = '') {
        $ttf_array = [];
        $ttf_array['0'] = '0';
        $ttf_array['1'] = 'j';
        $ttf_array['2'] = 'k';
        $ttf_array['3'] = 'l';
        $ttf_array['4'] = 'm';
        $ttf_array['5'] = 'n';
        $ttf_array['6'] = 'o';
        $ttf_array['7'] = 'p';
        $ttf_array['8'] = 'q';
        $ttf_array['9'] = 'r';
        if (empty($str)) {
            return 0;
        }
        $tr = str_split($str);
//     str_replace 无法使用,可能有bug
        foreach ($ttf_array as $k => $v) {
            foreach ($tr as $kk => &$vv) {
                if ((string) $v == (string) $vv) {
                    $vv = $k;
                }
            }
        }
        $re = implode('', $tr);
        return $re;
    }
str_replace 无法这样使用

foreach ($ttf_array as $k => $v) {
str_replace($v,$k,$str);
 }
无法替换,目前还不知道是这个是什么原因造成的

posted on 2018-08-28 09:31  zh7314  阅读(891)  评论(0编辑  收藏  举报