1

早上好男孩和女孩...有人能指出我正确的方向吗,拜托。

我想 JUNE 29, 2009–JULY 5, 2009 用纯文本替换我的 php-echo-output:last week

<?php
ob_start();
wp_get_archives('type=weekly&limit=1');
$wklyarchives = ob_get_contents();
ob_end_clean();
$wklyarchives = preg_replace('%\&\#8211\;[a-zA-Z0-9, ]*\</a\>%s', 'last week</a>', $wklyarchives);
echo $wklyarchives;
?>

这个 preg_replace 只替换了第二部分,所以我的输出现在是JUNE 29, 2009last week 这个 preg 让我发疯了......

4

2 回答 2

1

您只匹配破折号及其后面的部分,因此这正是要替换的部分。如果在破折号之前添加相同的字符类,例如

[a-zA-Z0-9, ]%\&\#8211\;[a-zA-Z0-9, ]

它应该可以工作(取决于$wklyarchives甚至在 'JUNE 29' 部分之前包含的内容;你可能必须确保你不会马虎太多)。

于 2009-07-07T12:01:21.820 回答
0

好的,用 WordPress 试过了,效果很好:

'/[a-z0-9,]+ [0-9,]+ [0-9]+.?[a-z0-9,]+ [0-9,]+ [0-9]+/iu'

请记住,不要将输出缓冲与 wp_get_archives 一起使用。使用回声=0:

$wklyarchives = wp_get_archives("type=weekly&limit=1&echo=0");

祝你好运。

于 2009-07-07T13:59:26.033 回答