我想使用PHP从http://search.twitter.com/search.atom?q=%23eu-jele%C4%A1%C4%A1i获取所有主题标签。

主题标签位于RSS feed中的内容,标题节点中。它们以#开头

我遇到的问题是非英语字母(超出a-zA-Z范围)。

如果您查看RSS提要,然后查看html源,那么我的努力可能会更加清楚。

    <title>And more: #eu-jele&#289;&#289;i #eu-kiest #ue-wybiera #eu-eleger #ue-alege #eu-vyvolenej #eu-izvoli #eu-elegir #eu-v&#228;lja #eu-elect</title>


找到我的rexexp匹配项之前,我是否需要对title节点做一些事情。

我的最终目标是用Twitter搜索网址替换井号,例如http://search.twitter.com/search.atom?q=%23eu-jele%C4%A1%C4%A1i

这是一些示例代码可以帮助您。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<body>
<?php
$title="And more: #eu-jele&#289;&#289;i #eu-kiest #ue-wybiera #eu-eleger #ue-alege #eu-vyvolenej #eu-izvoli #eu-elegir #eu-v&#228;lja #eu-elect";

// this is the regexp that hashtags.org use (http://twitter.pbwiki.com/Hashtags)
$r = preg_replace("/(?:(?:^#|[\s\(\[]#(?!\d\s))(\w+(?:[_\-\.\+\/]\w+)*)+)/"," <a href=\"http://search.twitter.com/search?q=%23\1\">\1</a> ", $title);
echo "<p>$r</p>";

$r = preg_replace("/(#.+?)(?:(\s|$))/"," <a href=\"http://search.twitter.com/search?q=\1\">\1</a> ", $title);
echo "<p>$r</p>";

// This is my desired end result
echo "<p><a href=\"http://search.twitter.com/search?q=%23eu-jeleġġi\">#eu-jeleġġi</a></p>";
?>

</body>
</html>


任何建议或解决方案将不胜感激。

最佳答案

要不就

(#\S+)

10-08 11:41