在使用 AdminLTE 时,引入了 google 字体样式,在某些时间并不很理想,于是,便下载到本地使用。
前提,你需要能访问线上的谷歌字体样式。
- 在开始之前,你需要确认 PHP 扩展开启了 extension=php_openssl.dll
- 及 allow_url_fopen = on 和 allow_url_include = on
- 并且 配置 证书文件 下载文件并存入本地 http://curl.haxx.se/ca/cacert.pem
- openssl.cafile=D:\phpStudy\tools\cacert.pem
完成后,会在当前程序目录下会有很多谷歌字体文件。之后,修改谷歌字体样式中引入文件位置即可正常使用。
<?php /* * 将谷歌字体下载到本地 * 针对 AdminLTE 2.4 引入 google 字体样式 * * 在开始之前,你需要确认 PHP 扩展开启了 extension=php_openssl.dll * 及 allow_url_fopen = On 和 allow_url_include = on * 并且 配置 证书文件 下载文件并存入本地 http://curl.haxx.se/ca/cacert.pem * openssl.cafile=D:\phpStudy\tools\cacert.pem */ // 设置程序最大执行时间 set_time_limit(120); // 读取谷歌字体样式文件 $data = file_get_contents('./css.css'); // 正则匹配 url() 中内容 preg_match_all('/url\(([\s\S]*?)\)/', $data, $res); // 匹配成功 下载并存到程序当前目录 if (!empty($res) && !empty($res[1])) { foreach ($res[1] as $key => $url) { // 远程读取 $font_data = file_get_contents($url); // 获取文件名 $fname = basename($url); // 存储到当前目录下 $size = file_put_contents('./'. $fname, $font_data); // 调试输出 echo 'file '.($key+1).' :'.$fname.' size : <b>'. number_format($size/1024, 2, '.', ''),'KB</B><br />'; } } else { echo 'not fount'; } ?>