Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php wordpress wp_get_用preg_replace归档输出更改_Php_Wordpress_Preg Replace - Fatal编程技术网

Php wordpress wp_get_用preg_replace归档输出更改

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, ]*\</

早上好,孩子们……有人能给我指一下正确的方向吗

我想替换我的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, ]*\</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\;在你的正则表达式里?