Php wordpress wp_get_用preg_replace归档输出更改
早上好,孩子们……有人能给我指一下正确的方向吗 我想替换我的php echo输出Php wordpress wp_get_用preg_replace归档输出更改,php,wordpress,preg-replace,Php,Wordpress,Preg Replace,早上好,孩子们……有人能给我指一下正确的方向吗 我想替换我的php echo输出 2009年6月29日至2009年7月5日 纯文本:上周 <?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, ]*\</
2009年6月29日至2009年7月5日
纯文本:上周
<?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只替换了第二部分,因此我的输出现在是2009年6月29日上周
这个preg让我疯狂…你只匹配了仪表板和后面的零件,所以这正是被替换的部分。如果在破折号之前添加相同的字符类,如
[a-zA-Z0-9, ]%\&\#8211\;[a-zA-Z0-9, ]
它应该可以工作(取决于
$wklyarchives
甚至在“6月29日”部分之前包含的内容;您可能必须确保不要太多)。您只匹配仪表板和后面的部分,因此这正是被替换的内容。如果在破折号之前添加相同的字符类,如
[a-zA-Z0-9, ]%\&\#8211\;[a-zA-Z0-9, ]
它应该可以工作(取决于在“6月29日”部分之前,
$wklyarchives
包含的内容;您可能必须确保不会太多)。好的,用WordPress尝试了一下,效果很好:
'/[a-z0-9,]+ [0-9,]+ [0-9]+.?[a-z0-9,]+ [0-9,]+ [0-9]+/iu'
请记住,不要将输出缓冲与wp_get_归档一起使用。使用echo=0:
$wklyarchives = wp_get_archives("type=weekly&limit=1&echo=0");
祝你好运。好的,用WordPress试试这个,效果很好:
'/[a-z0-9,]+ [0-9,]+ [0-9]+.?[a-z0-9,]+ [0-9,]+ [0-9]+/iu'
请记住,不要将输出缓冲与wp_get_归档一起使用。使用echo=0:
$wklyarchives = wp_get_archives("type=weekly&limit=1&echo=0");
祝你好运。$wklyarchives=preg\u replace(“[a-zA-Z0-9,]%\&\\\\\8211\[a-zA-Z0-9,]*\%s”,“上周”,“$wklyarchives”);谢谢你的回答…我不知道为什么,但它不起作用。在替换之前,$wklyarchives的确切内容是什么?我得到了以下输出:2009年6月29日-2009年7月5日2009年和7月之间的短跑:这是正常短跑、em短跑、en短跑还是转义短跑?您发布的是一个常规破折号,但从您的正则表达式来看,它似乎应该是一个转义的en破折号。那么为什么是:%\&\\ 8211\;在您的正则表达式中?$wklyarchives=preg\u replace('[a-zA-Z0-9,]%\&\\\\8211\[a-zA-Z0-9,]*\%s','last week',$wklyarchives);谢谢你的回答…我不知道为什么,但它不起作用。在替换之前,$wklyarchives的确切内容是什么?我得到了以下输出:2009年6月29日-2009年7月5日2009年和7月之间的短跑:这是正常短跑、em短跑、en短跑还是转义短跑?您发布的是一个常规破折号,但从您的正则表达式来看,它似乎应该是一个转义的en破折号。那么为什么是:%\&\\ 8211\;在你的正则表达式里?