Search code examples
phpregexwordpressqtranslate

Simple Regular Expression to return text from Wordpress title - qtranslate plugin


I am using qtranslate wordpress plugin to store blog content in multiple languages. Now I need to extract content from qtranslate tags.

$post_title  = "<!--:en-->English text<!--:--><!--:it-->Italian text<!--:-->";

What would be the php code & regular expression to return text and language from this string?

Thanks a lot!


Solution

  • Try something like:

    <?php
    $post_title  = "<!--:en-->English text<!--:--><!--:it-->Italian text<!--:-->";
    
    $regexp = '/<\!--:(\w+?)-->([^<]+?)<\!--:-->/i';
    if(preg_match_all($regexp, $post_title, $matches))
    {
        $titles = array();
        $count = count($matches[0]);
        for($i = 0; $i < $count; $i++)
        {
            $titles[$matches[1][$i]] = $matches[2][$i];
        }
        print_r($titles);
    }
    else
    {
        echo "No matches";
    }
    ?>
    

    Prints:

    Array
    (
        [en] => English text
        [it] => Italian text
    )