替换HTML代码中的图片、CSS、JS地址

最近打算把网页中的资源型的文件跟HTML源文件的请求域名进行分离,预计下一步把这些资源文件放到另外一台服务器上去,从而加速网站的访问速度。

网站涉及到的页面比较多,想通过一段代码直接来替换返回的HTML代码中这些资源文件的请求地址:


$content = " <link rel=\"stylesheet\" href=\"/style/css.css\" /> <script src=\"/js/jquery.min.js\"></script> <div class=\"fl\"> <a href=\"/buydog-c470.html\"><img src=\"/images/dog_1.jpg\" width=\"500\" height=\"254\" /></a> <a href=\"/buydog-c499.html\"><img src=\"/images/dog_2.jpg\" width=\"250\" height=\"254\" /></a> <a href=\"/buydog-c496.html\"><img src=\"/images/dog_3.jpg\" width=\"250\" height=\"254\" /></a> <a href=\"/buydog-c502.html\"><img src=\"/images/dog_5.jpg\" width=\"250\" height=\"254\" /></a> <a href=\"/buydog-c474.html\"><img src=\"/images/dog_6.jpg\" width=\"250\" height=\"254\" /></a> <a href=\"/buydog-c477.html\"><img src=\"/images/dog_7.jpg\" width=\"250\" height=\"254\" /></a> <a href=\"/buydog-c493.html\"><img src='/images/dog_8.jpg' width=\"250\" height=\"254\" /></a> </div> "; // 替换资源路径 $content = preg_replace([ '/(<img [^>]*src=[\'|\"])\//i', '/(<link [^>]*href=[\'|\"])\/style/i', '/(<script [^>]*src=[\'|\"])\/js/i', ], [ '$1http://devkang.com/', '$1http://devkang.com/style', '$1http://devkang.com/js' ] ,$content); echo $content;

以上代码只考虑了路径是相对路径,绝对路径暂时没有做考虑,后面我会再补充更加详细的资料。

如果程序是单一路口,可以考虑在路口文件直接实现即可。

<?php
ob_start();

define('ROOT_PATH', dirname(__FILE__));
include(ROOT_PATH . '/start.php');
App::run();
// 获取缓存输出内容
$content = ob_get_contents();
// 丢弃之前的资源输出到前端
ob_clean();

// 替换资源路径
$content = preg_replace([
    '/(<img [^>]*src=[\'|\"])\//i',
    '/(<link [^>]*href=[\'|\"])\/style/i',
    '/(<script [^>]*src=[\'|\"])\/js/i',
], [
    '$1http://devkang.com/',
    '$1http://devkang.com/style',
    '$1http://devkang.com/js'
] ,$content);

// 输出内容到前端
echo $content;

进行页面资源请求域名分离以后,网页访问速度明显加快。

本文已经被查看527次

发表评论

电子邮件地址不会被公开。 必填项已用*标注