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

可紊 提交于 2020-01-13 18:12:37

问题


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!


回答1:


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
)



回答2:


These are all brilliant examples. However, I recently discovered qTranslate has their own function available:

qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($post_title);

Which will grab the current language and fail over to the default.



来源:https://stackoverflow.com/questions/1853406/simple-regular-expression-to-return-text-from-wordpress-title-qtranslate-plugi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!