早上好男孩和女孩......请有人指出我正确的方向。
我想替换我的php-echo-output
JUNE 29, 2009–JULY 5, 2009
只有纯文本: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让我发疯...
答案 0 :(得分:1)
你只是匹配破折号和它后面的部分,所以这正是被替换的东西。如果在破折号之前添加相同的角色类,例如
[a-zA-Z0-9, ]%\&\#8211\;[a-zA-Z0-9, ]
它应该可以工作(取决于{JIN 29'部分之前$wklyarchives
包含的内容;你可能必须确保你没有太多)。
答案 1 :(得分:0)
好的,用WordPress尝试过这个,工作正常:
'/[a-z0-9,]+ [0-9,]+ [0-9]+.?[a-z0-9,]+ [0-9,]+ [0-9]+/iu'
请记住,不要在wp_get_archives中使用输出缓冲。使用echo = 0:
$wklyarchives = wp_get_archives("type=weekly&limit=1&echo=0");
祝你好运。