问题
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