0

我已经为此苦苦挣扎了 2 个小时,这让我发疯了。而且我认为这可能并不难。我正在使用 Wordpress,需要将 IMG url 从旧​​路径替换为新路径。问题是..关于 url 的所有内容都是静态的,除了一个随机的特定目录。

例子:

https://cdn2.content.mysite.com/uploads/user/76eb326b-62ff-4d37-bf4b-01a428e2f9f6/0ffd6c15-8a13-437c-9661-36edfe11cb41/Image/b1493cd89a29c0a2d1d8e0939f05d8ee/booth_w640.jpeg

应该成为

/wp-content/uploads/imports/booth_w640.jpeg

粗体部分是随机的。所以我在我的wordpress functions.php中有这个

function replace_content($content) {
    $reg = '#/https://cdn2.content.mysite.com/uploads/user/76eb326b-62ff-4d37-bf4b-01a428e2f9f6/0ffd6c15-8a13-437c-9661-36edfe11cb41/Image/([^/]+)#i';
    $rep = '/wp-content/uploads/imports';
    $content = preg_replace($reg, $rep ,$content);
    return $content;
}
add_filter('the_content','replace_content');

但这行不通。我想不通。有什么帮助吗?

4

2 回答 2

0

我使用以下代码确定了我的问题的答案

preg_match( '/src="([^"]*)"/i', $content, $match ) ;
$getURL = $match[1];
$urlArr = explode("/",$getURL);
$fileName = end($urlArr);
$newURL = "/blog/wp-content/uploads/imports/" . $fileName;
$content = str_replace($getURL, $newURL, $content);
于 2013-10-31T16:03:32.737 回答
0

我认为你需要的是:

function replace_content($content) {
    $reg = '#/static-part-of-url/([^/]+)#i';
    $rep = '/wp-content/uploads/imports';
    $content = preg_replace($reg, $rep ,$content);
    return $content;
}
add_filter('the_content','replace_content');

/在尝试匹配 URL 时,使用不同的分隔符会更好。

是正在运行的脚本。

于 2013-10-31T05:41:13.147 回答