1

おはようございます男の子と女の子...誰か私を正しい方向に向けてください.

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 は 2 番目の部分だけを置き換えるため、出力は次のようにJUNE 29, 2009last week なりました。この preg は私を夢中にさせます...

4

2 に答える 2

1

ダッシュとその後の部分だけを一致させているので、まさにそれが置き換えられています。ダッシュの前に同じ文字クラスを追加すると、

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

それは機能するはずです(「JUNE 29」の前でも何が含まれているかによって異なります。あまり$wklyarchivesマッチしないようにする必要があるかもしれません)。

于 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で出力バッファリングを使用しないことを忘れないでください。echo = 0を使用します:

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

幸運を。

于 2009-07-07T13:59:26.033 に答える