Support » Plugin: WP VeriteCo Timeline » preg_replace "\v" not working

  • A simple dash in the text was causing the text for an entry to not be displayed. I commented out lines 48 and 49 and the problem went away. This is the string I tried to enter into the WYSIWYG for the timeline custom post type.

    In my day, there was only one show in town — it was called “Stare at the sun!” … That’s right!

    $text = apply_filters('the_content', $post->post_content);
    // $text = preg_replace('/\v+|\\\[rn]/','',$text);
    // $text = $this->undoTexturize($text);

    \v actually replaced instances of the character “v” and not vertical whitespace characters as intended. I think there is an issue in PHP where \R and \v don’t work as expected when run in classes. Rethink the \v. I have php 5.3 and \v was introduced in 5.2, so my version of PHP is not the issue.

    Also undoTexturize was causing non-utf8 characters to show up as that annoying black diamond on the front end. Rethink that filtering process. json_encode takes care of a lot of stuff directly. I think you’re overthinking the filtering.

Viewing 1 replies (of 1 total)
  • Plugin Author Josh Eaton


    Thanks for reporting this. I’ve replaced the vertical whitespace with a simpler replace in version 1.1.2. Now that I think about it, the regex might just have an issue because \v should be in brackets: [\v]+. Not sure whether that’s as important as just replacing line breaks.

    I haven’t had a chance to test the effects of undoTexturize so I’ve left that in for now.

    Pull requests are always welcome:

Viewing 1 replies (of 1 total)
  • The topic ‘preg_replace "\v" not working’ is closed to new replies.