Ben bir WordPress eklentisi yazıyorum ve özelliklerinden biri yinelenen boşlukları kaldırıyor.
Benim kod şöyle görünür:
return preg_replace('/\s\s+/u', ' ', $text, -1, $count);
I don't understand why I need the
u
modifier. I've seen other plugins that usepreg_replace
and don't need to modify it for Unicode. I believe I have a default installation of WordPress .Without the modifier, the code replaces all the spaces with Unicode replacement glyphs instead of spaces.
With the
u
modifier, I don't get the glyphs, and it doesn't replace all the whitespace.
Aşağıdaki her uzay 1-10 alanlardan vardır. Regex sadece her gruptan alanı kaldırır.
Önce:
This sentence has extra space. This doesn’t. Extra space, Lots of extra space.
Sonra:
This sentence has extra space. This doesn’t. Extra space, Lots of extra space.
$count
= 9
How can I make the regex replace the whole match with the one space?
Update: If I try this with regular php, it works fine
$new_text = preg_replace('/\s\s+/', ' ', $text, -1, $count);
It only breaks when I use it within the wordpress plugin. I'm using this function in a filter:
function jje_test( $text ) {
$new_text = preg_replace('/\s\s+/', ' ', $text, -1, $count);
echo "Count: $count";
return $new_text;
}
add_filter('the_content', 'jje_test');
Ben denedim:
- Removing all other filters on the_content
remove_all_filters('the_content');
- Filtrenin önceliğini değiştirme erken ya da geç, the_content eklendi
\s+, \s\s+, [ ]+
, vb permütasyon her türlü- Hatta boş bir dize ile tüm tek boşluk yerine, yerine boşluk olmayacak